VVa*_*der 6 sql-server authentication windows-services
我正在编写一个需要连接到SQL服务器以检索某些信息的Windows服务.但是,服务器不允许我连接:login failed for user [domain/username].奇怪的是,SSMS内部的一切都运行得很好.我可以登录,查询数据库,一切都很完美.只有通过Windows服务才会抛出错误.
作为参考,这是我正在使用的连接字符串:
Data Source = sqlserveraddresshere; Initial Catalog = databasenamehere; User ID = domain\username; Password = password`
我怀疑这是否相关,但是当我尝试使用集成安全性时,它会获取我的计算机名称而不是我自己的用户名.我99%肯定这是因为我们的防病毒和监控软件在我的Windows会话之上欺骗管理员用户来完成它的工作.无论如何,只要输入正确的用户名和密码就行了,对吧?
我看了一些涉及相同错误的其他问题,但它们都是无关的.据我所知,每个可以通过SSMS进入的人都可以通过代码访问他们的SQL服务器.这是我能找到的最相似的问题,虽然它没有多大帮助: 无法连接到SQL Server:"用户登录失败"."
另外,在你问之前,我已经检查过TYPOS了.实际上,我甚至试图使用其他用户的帐户来确保我的权限不会出现任何问题.如果您需要我发布任何代码,请告诉我.谢谢你的帮助!
更新:
我更改了服务的帐户并切换回IntegratedSecurity = true.似乎有些事情发生了变化,因为现在我收到了一个稍微不同的错误:
无法打开登录请求的数据库"mydatabase".登录失败.>用户'MYDOMAIN\myUserName'登录失败.
它的工作原理!最后!
首先,使用Kevin的建议(原始问题下面的评论),我检查了SQL Server日志(在Management Studio中,展开服务器,展开管理,展开SQL Server日志).这就是我发现更冗长的错误报告,帮助我诊断问题的方法.
事实证明服务器不允许除Windows身份验证之外的任何其他内容,因此我尝试手动输入UN/PW失败了.
但是,我仍然遇到服务器将我的机器名称作为用户而不是用户名传递的问题.这是通过Duncan建议将服务运行的用户更改为我的名字(右键单击Services-> Properties-> Log On选项卡)来修复的.
感谢大家的帮助,非常感谢.