sql-server - 在 Excel-VBA/SQL : Login failed for user "testuser" 上

标签 sql-server vba excel amazon-web-services

在 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/

相关文章:

excel - 如何检查任何 Excel 工作簿是否打开?

java - spring-mvc 下载 Action

sql - 找出模式的序号

sql-server - Azure SQL 数据库 DTU

python - Apache Zeppelin Python UDF 转换为 SQL

sql - GROUP BY SQL Server 后的总和百分比

excel - 如何在关闭 Excel 时显示选项卡和功能区?

excel - 仅使用 VBA : Error "Unable to get the PasteSpecial property of the Range class 粘贴值

javascript - 使用 vue 创建 Excel Add-in 时。如何根据 Excel 笔记本上的数据计算属性?

xml - 使用 XSLT 从 XML 中写入数据列与 Excel 中的行