2

Microsoft Visual Studio 2010 内から Microsoft SQL Server 2008 R2 に接続しようとしています。接続文字列は次のとおりです。

connection = New SqlConnection("Server=localhost;Database=greenapplication;User ID=WindowsID;Password=WindowsPassword")

この例外が発生し続けます: System.Data.SqlClient.SqlException:

Login failed for user 'WindowsID'.

私は何を間違っていますか?設定する必要がある特定の権限はありますか?

4

3 に答える 3

1

統合セキュリティを使用しようとしている場合、接続文字列は次のようになります。

"Server=localhost;Database=greenapplication;Trusted_Connection=True"

次に、役割とWindowsグループを介してアクセス許可を管理します。(個々のユーザーにアクセス許可を付与できますが、これはデータベースアクセスを管理するための推奨される方法ではありません)。

更新:元の質問で、これがWebアプリケーションであると言及しなかった。これを処理する通常の方法は、アプリを作成することです。既知のID(NETWORK SERVICEなど)で実行されているプールを作成し、そのIDにデータベースに対する必要なアクセス許可を付与します。

次に例を示します。

-- Create a SQL Server login for the Network Service account
sp_grantlogin 'NT AUTHORITY\Network Service'

-- Grant the login access to database
USE MyDB
GO
sp_grantdbaccess 'NT AUTHORITY\Network Service', 'Network Service'

-- Add user to read only database role
USE MyDB
GO
sp_addrolemember 'db_datareader', 'Network Service'

接続文字列でユーザー名とパスワードを渡す安全性の低い方法を使用する場合は、SQLServerログオンを使用してください。

于 2012-05-14T01:22:49.497 に答える
0

「WindowsPassword」と言ったので、おそらくこの接続文字列を使用していると思います。

Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;

また、このサイトにアクセスすることをお勧めします。

http://www.connectionstrings.com

于 2012-05-14T01:23:27.717 に答える