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 应用程序。处理这个问题的常用方法是创建一个应用程序。池以已知身份(例如网络服务)运行,然后为该身份授予对数据库的必要权限。

这是一个例子:

-- 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'

如果您坚持使用在连接字符串中传递用户名和密码的不太安全的方法,请使用 SQL Server 登录:

于 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 回答
0

你可以试试这个。

"Provider=SQLOLEDB;Data Source=" & SQLSERVER NAME & "; Initial Catalog=" & Dbname & ";Network=DBMSSOCN;" & _
            "User Id=" & UID & ";" & _
            "Password=" & Pwd & ";"
于 2020-02-21T14:29:04.810 回答