Excel VBA - 与SQL数据库的连接失败

时间:2011-06-01 11:04:27

标签: sql vba excel-vba excel

我有这个代码,我正试图将数据从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)是域组的成员,该域组使用上述查询被授予访问数据库的权限。

有任何想法或建议吗?我是否还必须专门为每个表授予权限?

1 个答案:

答案 0 :(得分:3)

您混合了两种身份验证方法 - 您创建/启用了AD(域)用户,但您正在使用SQL身份验证来访问服务器。

您需要使用当前域用户凭据访问服务器(所谓的集成安全性;无法提供正确的语法atm)或者您需要在SQL服务器上启用SQL身份验证(如果尚未启用)并创建用户“accounting”(和其他需要的)具有特定的passowrd。