0
我有这段代码我试图用来将数据从Excel导出到SQL数据库,当我尝试打开连接时收到此错误。Excel VBA - 连接到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)连接的用户是一个域组,这是使用授权访问数据库的成员上面的查询。
任何想法或建议吗?我是否还必须为每个表具体授予权限?
啊哈,所以SQL身份验证是我通过vba宏代码使用的用户名和密码,那么吧?因此,如果我在连接字符串中使用trusted_connection = yes,则会使用当前登录的用户,而不是对吗?这是几个人应该连接到的数据库。那么这意味着我应该使用集成安全性并确保每个用户都是允许访问数据库的组的成员呢? – 2011-06-01 11:54:19
似乎是正确的。请注意,我没有直接连接字符串的经验,因此这一切只是暗示:) – Arvo 2011-06-01 13:53:25