从Visual Basic连接到Microsoft SQL Server

时间:2012-05-14 01:17:09

标签: vb.net visual-studio-2010

我正在尝试从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'.

我做错了什么?我必须设置某些权限吗?

3 个答案:

答案 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;

我也建议访问这个网站:

http://www.connectionstrings.com

答案 2 :(得分:0)

您可以尝试一下。

"Provider=SQLOLEDB;Data Source=" & SQLSERVER NAME & "; Initial Catalog=" & Dbname & ";Network=DBMSSOCN;" & _
            "User Id=" & UID & ";" & _
            "Password=" & Pwd & ";"