我正在编写一个Windows服务,需要连接到SQL服务器以检索一些信息,但是服务器不允许我连接:
这是我使用的连接字符串:
我查看了一些其他涉及相同错误的问题,但它们都与本问题无关。从我所知道的情况来看,每个人都可以通过SSMS进入他们的SQL服务器,并且通过代码访问它。这是我找到的最相似的问题,但并没有帮助多少:Can't connect to SQL Server: "Login failed for user "."。
在你询问之前,我已经检查过是否有错别字。实际上,我甚至尝试使用其他用户帐户,以确保我的权限没有什么奇怪的问题。如果您需要我发布任何代码,请告诉我。谢谢您的帮助!
更新:
我更改了服务的帐户,并切换回
login failed for user [domain/username]
。奇怪的是,从SSMS内部一切都能正常工作。我可以登录,查询数据库,一切都完美无缺。只有通过Windows服务才会出现此错误。这是我使用的连接字符串:
我怀疑这与Integrated Security有关。它获取了我的计算机名称而不是我的用户名。我99%确定这是因为我们的杀毒软件和监控软件在我的Windows会话上模拟管理员用户来执行其任务。无论如何,只需输入正确的用户名和密码即应该有效。Data Source=sqlserveraddresshere;Initial Catalog=databasenamehere;User ID=domain\username;Password=password`
我查看了一些其他涉及相同错误的问题,但它们都与本问题无关。从我所知道的情况来看,每个人都可以通过SSMS进入他们的SQL服务器,并且通过代码访问它。这是我找到的最相似的问题,但并没有帮助多少:Can't connect to SQL Server: "Login failed for user "."。
在你询问之前,我已经检查过是否有错别字。实际上,我甚至尝试使用其他用户帐户,以确保我的权限没有什么奇怪的问题。如果您需要我发布任何代码,请告诉我。谢谢您的帮助!
更新:
我更改了服务的帐户,并切换回
Integrated Security = true
。似乎发生了一些变化,因为现在我收到了一个稍微不同的错误:
Cannot open database "mydatabase" requested by the login. The login failed. >Login failed for user 'MYDOMAIN\myUserName'.