在 Excel-VBA 上,我尝试连接到 Amazon AWS/RDS(免费套餐)上的 SQL Server。我得到的只是:
Run-time error '-2147217843 (80040e4d)': Login failed for user '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;
工作尝试在我的本地创建一个“testuser”在 Amazon AWS/RDS 中具有类似权限的计算机,我收到类似的错误(登录失败..)。
这可能是 SQL 服务器中 SQL 用户/登录的权限问题吗? “testuser”需要什么权限?
SQL 日志报告:
Error: 18456, Severity: 14, State: 5
但是我使用的用户名就在那里,可以用来通过 SQL Server Management Studio 连接..
最佳答案
仍然无法弄清楚这里发生了什么,但我最终......
1) 删除用户和登录名..
2) 将我的 SQL Server 的安全性设置为仅 Windows 身份验证..
3) 重新启动 SQL Server..
4) 将我的 SQL Server 的安全性设置回混合模式身份验证..
5)再次重新启动..
6) 重新创建登录名和用户..恢复数据库权限..
现在好了..
关于sql-server - 在 Excel-VBA/SQL : Login failed for user "testuser" 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36223250/