我正在尝试从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'.
我做错了什么?我必须设置某些权限吗?
答案 0 :(得分:1)
如果您尝试使用集成安全性,则连接字符串应为:
"Server=localhost;Database=greenapplication;Trusted_Connection=True"
然后,您可以通过角色和窗口组管理权限。 (您可以授予单个用户权限,但这不是管理数据库访问的推荐方法。)
更新:您在原始问题中忽略了这是一个Web应用程序。处理此问题的常用方法是创建应用程序。池以已知身份运行(比如NETWORK SERVICE),然后为该身份赋予数据库必要的权限。
以下是一个例子:
-- 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登录:
答案 1 :(得分:0)
因为您说“WindowsPassword”,我认为您可能应该使用此连接字符串:
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;
我也建议访问这个网站:
答案 2 :(得分:0)
您可以尝试一下。
"Provider=SQLOLEDB;Data Source=" & SQLSERVER NAME & "; Initial Catalog=" & Dbname & ";Network=DBMSSOCN;" & _
"User Id=" & UID & ";" & _
"Password=" & Pwd & ";"