我有这个代码,我正试图将数据从Excel导出到SQL数据库,当我尝试打开连接时,我收到此错误。
[Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for the user 's_accounting'
这是我正在尝试使用的代码(变量当然已经变暗)
ServerName = "192.168.168.34"
DatabaseName = "Accountingnumbers"
TableName = "Projects"
UserID = "s_accounting"
Password = "password123"
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
Set cn = New ADODB.Connection
cn.Open "Driver={SQL Server};Server=" & ServerName & ";Database=" & DatabaseName & _
";Uid=" & UserID & ";Pwd=" & Password & ";"
请注意,我已经在那里重命名了一些敏感内容。另外,我使用此SQL查询设置了数据库的权限:
use [db]
go
create user [myDomain\Groupname] for login [myDomain\Groupname]
go
grant select on schema::dbo to [myDomain\Groupname]
go
我正在尝试连接的用户(s_accounting)是域组的成员,该域组使用上述查询被授予访问数据库的权限。
有任何想法或建议吗?我是否还必须专门为每个表授予权限?
答案 0 :(得分:3)
您混合了两种身份验证方法 - 您创建/启用了AD(域)用户,但您正在使用SQL身份验证来访问服务器。
您需要使用当前域用户凭据访问服务器(所谓的集成安全性;无法提供正确的语法atm)或者您需要在SQL服务器上启用SQL身份验证(如果尚未启用)并创建用户“accounting”(和其他需要的)具有特定的passowrd。