解析:如何解决服务用户账户的疑难问题
如果在特定的用户账户下启动SQLServer 或 SQL Server Agent 服务遇到困难,可以:
◆使用 Windows NT 用户管理器验证该计算机上的账户具有"作为服务登录"权限。(二者都必须在本地计算机的安全上下文中而不是在域中进行指派。)
如果服务不是被 Windows NT 本地管理员组中的成员启动,那么服务账户必须有如下权限:
◆完全控制主 Microsoft® SQL Server™ 目录(默认情况下是 /Mssql)。
◆完全控制 SQL Server 数据库文件,无论存储位置在什么地方。
◆"作为服务登录"权限。确保所有登录时间在"登录时间"对话框中是允许的。
◆完全控制 HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MSSQLServer 及其下方的注册表键值。
◆选择"密码永不失效"框。
◆完全控制 HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/MSSQLServer 及其下方的注册表键值。
◆完全控制 HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Perflib 及其下方的注册表键值。
如果服务没有适当的权限,那么某些功能就无法实现。例如,要写入邮件槽,服务就必须有 Windows NT 域用户账户,而不仅仅是本地系统上的账户,并且该账户具有网络写入特权。服务必须是有如下本地管理员特权的 Windows NT 账户:
◆创建不属于 sysadmin 固定服务器角色成员的 SQL Server 代理 CmdExec 和 Microsoft ActiveX® 脚本作业。
◆使用 SQL Server 代理的自动服务器重新启动功能。
◆当服务器空闲时,创建要运行的 SQL Server 代理作业。
对于 MSSQLServer 服务,右击服务器,再单击"属性",然后单击"安全"选项卡。在"启动服务账户"框中输入适当的帐户和密码。如果密码不正确或已经改变,那么直到输入正确密码,才能启动服务。
注意 如果只启动 MSDTC服务,那么用"控制面板"中的"服务"来重新输入用户账户密码。如果密码不正确或已经改变,那么直到输入正确密码,才能启动服务。如果有必要,可以使用"用户管理器"来更改账户密码,然后用"控制面板"中的"服务"输入这项服务的密码。
◆对于 SQLServerAgent 服务,先展开服务器,然后展开"管理"。右击"SQLServerAgent",然后单击"属性"命令。在"服务启动账户"节的"常规"选项卡(默认值)上,输入账户和密码。
◆把遇到问题的账户指派给另一个服务。如果在特定用户账户下启动 MSSQLServer或 SQLServerAgent 服务仍然存在困难,把该账户指派给别的服务(例如,后台处理程序服务),并验证该服务能否成功启动。如果还是不能,那么该账户或者没有正确配置,或者不能被域控制器验证(例如,没有可用的域控制器)。 (责任编辑:卢兆林)