" [Microsoft] [ODBC SQL Server Driver] [SQL Server] 登录失败,用户错误" 错误

3
我正在尝试通过Excel VBA连接到本地网络SQL服务器,但是我遇到了以下运行时错误:

[Microsoft][ODBC SQL Server Driver][SQL Server] Login failed for user 'myUID'

当我使用以下连接字符串时:

ConnectionString = "Driver = {SQL Server}; Server = myLocalServer; Database = myDb; trusted_connection = yes; UID = myUID; PW = myPWD;"

我使用了Windows身份验证作为SQL服务器的身份验证方法。我需要SQL和Windows身份验证吗?我的连接字符串有什么问题吗?

如果使用Windows身份验证,请删除UID和PW。尝试仅使用此代码:"Driver={SQL Server};Server=myLocalServer; Database=myDb;trusted_connection=yes;。您没有名为myUID的用户,这只是一个示例。myUid应该是"user1",密码应该是"something else"。示例 - Jimmy Smith
@JimmySmith,在我尝试使用你的解决方案时,当我从连接字符串中删除了UID和PW时,仍然遇到了“用户登录失败”的问题。 - ejj
如果是这样的话,错误应该完全不同。用户“WindowsUserNameHere”的登录失败。该用户未与受信任的 SQL Server 连接关联。您确定它以 Trusted_Connection=Yes; 结尾吗?我这么说是因为您的代码中可能还有其他部分设置了用户名/密码。您能否发布整个代码部分? - Jimmy Smith
检查主机名是否正确,通常 Windows 共享服务器的主机位于一个 IP 上,文件位于另一个 IP 上,因此不要使用 localhost,与提供商确认并获取数据库服务器的正确 IP 并进行检查。 - Reejesh PK
2个回答

2
如果您设置了UID和PW,则很可能是SQL帐户。该帐户是否存在于SQL中?当您删除UID和PW并替换为可信连接时,它将使用Windows身份验证。如果您这样做,请确保您的Windows帐户在SQL中具有权限。

当我使用我的Windows账户时,我可以成功连接到MSSMS中的SQL服务器。 - ejj
在您的计算机/笔记本电脑上创建一个通用ODBC连接,不要在应用程序内部创建,然后尝试连接。 - Jason B.
创建了一个通用的对象后,我作为所有者得到了解决方案。 - ejj

1
发生这种情况的原因是因为您要求它同时进行“可信连接”和传递凭据(使用uid和pwd)。您需要删除trusted_connection=yes;或删除UID=myUID;PW=myPWD;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接