|
|
1
14
目前,服务似乎是在 LocalService Account 此服务帐户当前未在SQL上授权。 这种情况可以通过以下两种方式之一来解决:在SQL中授权的帐户下运行该帐户,或者在SQL中添加LocalService帐户作为登录名。明确地:
编辑
:第一种方法可能更可取,因为本地服务帐户在系统中普遍存在,因此授予它对SQL的访问权限将暴露SQL,并且使用SQL的特定服务或驱动程序将受到损害。
|
|
|
2
4
当服务控制管理器启动Windows服务时,该进程作为特定用户执行,就像在操作系统上运行的任何其他进程一样。 有许多“内置”用户帐户用于运行Windows服务。如果您查看“计算机管理”中的“服务”节点,则可以看到完整的Windows服务集及其运行方式(在Windows 7中称为“登录身份”)。 根据我的经验,当我们希望Windows服务使用集成安全性与数据库通信时,我们采用以下第二种方法: 1)将其中一个内置帐户分配为“登录为”帐户,并将此帐户添加为具有相应db权限的SQL Server实例上的登录名。 2)使用/创建要使用的Windows服务的本地或域帐户,然后将此帐户添加为具有相应db权限的登录名。可以通过安装程序在安装服务期间提示用户帐户凭据。 我不能声称自己是足够的专家来指出每种方法的所有优缺点,但是值得考虑以下几点:
我希望这有帮助 |
|
|
3
2
如果要使用受信任的Windows身份验证,最简单的方法是使用被授权给SQL Server数据库的域帐户(所需权限最小)运行服务。 |
|
4
1
您需要在SQL Express中授予对本地服务帐户的访问权限。根据我的意见,我的建议是创建一个新帐户,您的服务可以在该帐户下运行,然后在SQL Express中添加相关权限,换句话说,不要在本地服务下运行您的服务。 |
|
|
5
1
正如MJV所说,您需要给本地服务帐户访问数据库的权限,或者使用其他帐户来运行服务。您询问如何以编程方式更改帐户,这是通过为服务创建安装程序并将帐户属性更改为“用户”,然后指定运行服务的用户名和密码来完成的。 如果滚动到底部,以下链接包含有关创建安装程序的信息: http://msdn.microsoft.com/en-us/library/aa984464(VS.71).aspx 下面提供了有关account属性的更多详细信息: 希望这有帮助。 |