我在写一个需要连接到SQL服务器以检索一些信息的Windows服务。但是,服务器不允许我连接:login failed for user [domain/username]
。奇怪的是,SSMS内部的一切都完好无损。我可以登录,查询数据库,并且一切都完美无缺。只有通过Windows服务才会抛出该错误。对于Windows服务SQL“登录失败,用户[用户名]”错误,但SSMS登录工程
仅供参考,这里是我使用的连接字符串:
Data Source=sqlserveraddresshere;Initial Catalog=databasenamehere;User ID=domain\username;Password=password`
我怀疑,这是相关的,但是当我尝试使用集成安全性它让我的计算机名称,而不是我自己的用户名。我99%肯定这是因为我们的反病毒和监控软件欺骗了我的Windows会话管理员用户来完成其工作。在任何情况下,只要输入正确的用户名和密码应该工作不管,对不对?
我看了一些涉及相同错误的其他问题,但他们都没有关系。从我可以告诉谁可以通过SSMS进入的所有人都可以通过代码访问他们的SQL服务器。这是我能找到的最类似的问题,虽然它没有多大帮助: Can't connect to SQL Server: "Login failed for user "."
另外,在你问之前,我已经检查过TYPOS。其实,我甚至试图使用其他用户的帐户,以确保我的权限没有什么奇怪的事情发生。如果你需要我发布任何代码,请告诉我。谢谢你的帮助!
UPDATE:
我改变了账户服务和切换回IntegratedSecurity = true
。这似乎是有所改变,因为现在我收到一个稍微不同的错误:
Cannot open database "mydatabase" requested by the login. The login failed. >Login failed for user 'MYDOMAIN\myUserName'.
您可以检查SQL事件日志(在Management Studio中,展开服务器,展开管理,展开SQL Server日志),并为我们提供失败登录的完整错误?它应该包含错误编号,严重性和状态。 –
检查SQL事件日志帮助我了解了一些新内容:我尝试访问的服务器仅配置了Windows身份验证。但是,当我使用WA时登录仍然失败,因为它仍然发送我的计算机名称而不是帐户名称。我会做更多的研究来尝试解决这个问题。 以下是完整的错误(带有匿名凭据):用户'DOMAIN \ MACHINE_NAME $'失败。原因:基于令牌的服务器访问验证因基础结构错误而失败。检查以前的错误。 [客户端:10.1.0.188] – VVander
错误是否在您发布的消息上面有严重性**和**状态**值? –