在Excel-VBA / SQL上:用户“ testuser”的登录失败

横扫

在Excel-VBA上,我试图连接到Amazon AWS / RDS(免费版)上的SQL Server。我得到的是:

运行时错误'-2147217843(80040e4d)':用户'testuser'的登录失败。

我的代码:

Dim conn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim ConnectionString As String
Dim StrQuery As String

ConnectionString = "Provider=SQLOLEDB;Data Source=***sqlserver_instance***.amazonaws.com,1433;Initial Catalog=TESTDB;User ID=testuser;Password=testpassword;"

conn.Open ConnectionString

StrQuery = "SELECT * FROM TestTable WHERE ThisField = '" & Sheets("ThisSheet").Range("ThisValue").Value & "'"

rst.Open StrQuery, conn

Sheets("AnotherSheet").Range("A1").CopyFromRecordset rst

我可以使用与上面相同的用户名,使用SQL Server Management Studio连接,管理数据库并执行查询。

注意:在Amazon AWS / RDS的SQL实例上启用了混合模式身份验证。我还为连接字符串使用了不同的组合/参数,但仍然相同...此外,我在运行SQLExpress的本地计算机上拥有数据库的副本,并且代码使用Integrated Authentication=SSPI;Tried在本地计算机上创建了“ testuser”,从而可以正常工作在Amazon AWS / RDS中具有相似的权限,并且出现类似的错误(登录失败..)。

这可能是SQL Server中SQL用户/登录的权限问题吗?“测试用户”需要什么权限?

SQL日志报告:

错误:18456,严重性:14,状态:5

但是我正在使用的用户名位于其中,可用于通过SQL Server Management Studio进行连接。

横扫

仍然不知道这里发生了什么,但我最终还是..

1)删除用户和登录名。

2)将我的SQL Server的安全性设置为仅Windows身份验证。

3)重启SQL Server。

4)将我的SQL Server的安全性设置回混合模式身份验证。

5)再次重新启动..

6)重新创建登录名和用户..恢复对数据库的权限。

现在可以了..

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章