我正在编写一个需要连接到 SQL 服务器以检索一些信息的 Windows 服务。但是,服务器不允许我连接:login failed for user [domain/username]
. 奇怪的是,在 SSMS 内部一切正常。我可以登录,查询数据库,一切都很顺利。只有通过 Windows 服务,它才会抛出该错误。
作为参考,这是我正在使用的连接字符串:
数据源=sqlserveraddresshere;初始目录=databasenamehere;用户ID=域\用户名;密码=密码`
我怀疑这是相关的,但是当我尝试使用集成安全时,它得到的是我的计算机名而不是我自己的用户名。我 99% 确定这是因为我们的防病毒和监控软件在我的 Windows 会话之上欺骗管理员用户来完成其工作。无论如何,只要输入正确的用户名和密码就可以了,对吧?
我看了一些其他涉及相同错误的问题,但它们都是不相关的。据我所知,每个可以通过 SSMS 进入的人也可以通过代码访问他们的 SQL 服务器。这是我能找到的最相似的问题,虽然没有多大帮助: 无法连接到 SQL Server:“用户登录失败”。
另外,在你问之前,我已经检查了错别字。实际上,我什至尝试使用其他用户的帐户来确保我的权限不会发生任何奇怪的事情。如果您需要我发布任何代码,请告诉我。谢谢你的帮助!
更新:
我更改了该服务的帐户并切换回IntegratedSecurity = true
. 似乎有些事情发生了变化,因为现在我收到了一个稍微不同的错误:
无法打开登录请求的数据库“mydatabase”。登录失败。>用户“MYDOMAIN\myUserName”登录失败。