日期:2014-05-18  浏览次数:20906 次

关于windows服务的权限问题
最近写了个win服务功能是定期向SQLserver提交数据(服务与SqlServer不在同一台电脑,但在同一局网),在本地测试一切正常,服务权限是设定为LocalSystem的,但将服务放到客户处运行,则总是提示sa登录失败(提示如下:Message:Login failed for user 'sa'. Reason: Not associated with a trusted SQL Server connection.),注:sa是绝对可以登了,因为其它程序都是用sa访问数据库的.从Sqlconnection换成OdbcConnection错误依旧,把服务改成winform运行又正常,真是狂晕,后来把程序改为在服务中启动winform来运行,以为可以了,谁知错误依旧.....更晕了...于是开始怀疑是服务的权限问题,但我已经用LocalSystem了不是已经是最大权限了吗?....于是把服务权限改为User并指定是Administrator,晕,服务正常了.......真是搞不懂啊...请哪位熟知win服务及其权限的大侠赐教......跪求啊....

------解决方案--------------------
LocalSystem的权限不够访问网络上的数据库,给NetworkService看看
------解决方案--------------------
在你的域服务器里新建一个用户,分给这个用户 domainuser和sysadmin和dbowner权限 sysadmin是在sqlserver里面分的,查一下应该可以找到,之后让服务用这个用户起,肯定可以连上。

跨域的应该保证不了连接。

个人理解,如果是windows验证的话就看起exe的用户有无权限连接sql,这个权限是在sqlserver里可以加的。
sa用户连接时另一种方式,只要不跨域应该不会有这种问题。