我最近在全新的Windows 7安装上安装了Microsoft SQL Server 2012,但是每当我要运行服务器时,都会出现以下错误:
错误1069:由于登录失败,服务未启动。
配置了以下用户以启动服务: NT Service\MSSQL$SQLEXPRESS
我该如何解决这个问题?
我最近在全新的Windows 7安装上安装了Microsoft SQL Server 2012,但是每当我要运行服务器时,都会出现以下错误:
错误1069:由于登录失败,服务未启动。
配置了以下用户以启动服务: NT Service\MSSQL$SQLEXPRESS
我该如何解决这个问题?
Answers:
答案可能与完整的SQL Server(NTService \ MSSQLSERVER)问题相同,这是重置密码。具有讽刺意味的是,没有密码。
步骤如下:
这应重新授予对该服务的访问权限,并应重新启动。奇怪的?
注意:如果问题在几个小时或几天后再次出现,则可能是您有一个组策略,该组策略将覆盖您的设置,并且该策略即将到来并立即消失。
这发生在我身上。该域上的策略剥夺了SQL Server用户帐户的“作为服务登录”权限。您可以使用JLo的解决方案解决此问题,但不能专门解决组策略问题,下次在计算机上刷新组策略时,它将返回。
引起我问题的特定策略是:在“计算机配置”下,依次单击“ Windows设置”,“安全设置”,“本地策略”,然后单击“用户权限分配:作为服务登录”。
通过从命令行运行命令“ rsop”,可以查看正在将哪些策略应用到您的计算机。遵循上面列出的策略的路径,您将看到其当前值以及由哪个GPO设置该值。
当(“以系统身份运行”)有效时,应告知人们这意味着从最低权限类型的帐户转到拥有世界上所有权限的帐户。这不是推荐的设置最佳实践或安全性方面的建议。
如果您知道自己在做什么,并且知道您的SQL Server将始终在隔离的环境中运行(即不在酒店或机场wifi上),那可能就可以了,但这会创建一个非常真实的攻击媒介,如果在打开状态下可能会完全破坏计算机互联网。
这似乎是Microsoft的错误,人们应该意识到发布的变通办法的含义。
简短的答案:
在SQL Server上安装远程服务器管理工具(这是Windows Server的可选功能),重新启动,然后运行SQL Server配置管理器,访问其登录帐户以“ NT服务”开头的每个服务的服务设置。 。”,清除密码字段并重新启动服务。在幕后,SQL Server Config管理器将为这些虚拟帐户分配“作为服务登录”权限,然后您就可以使用了。
tl; dr;
Windows域的默认设置和SQL Server 2012的默认安装之间存在陷阱22。
如上所述,默认的Windows域设置确实会阻止您通过本地计算机上的组策略编辑(至少通过GUI)定义“作为服务登录”;如果您安装Powershell ActiveDirectory模块(通过远程服务器管理工具下载) ),您可以通过编写脚本来实现。
并且,默认情况下,SQL Server 2012安装程序在“虚拟帐户”(NT Service \前缀,例如NT Service \ MSSQLServer)中运行服务。这些服务类似于本地计算机帐户,而不是域帐户,但是您仍然无法分配它们登录如果您的服务器已加入域,则作为服务权限; SQL Server安装程序会在安装时尝试分配权限,而SQL Server配置管理工具同样会在您更改登录帐户时尝试分配权限。
美丽的22点是:SQL Server工具依赖RSAT(的某些组件)将登录分配为服务权限。如果您没有在成员服务器上安装RSAT,则SQL Server Config Manager会静默地尝试应用该设置(尽管运行了所有花哨的预安装验证)而失败,并且最终您将获得无法启动的服务。
我可以在SQL Server和虚拟帐户doc的暴风雪中找到的这一要求的一个提示是:https : //msdn.microsoft.com/zh-cn/library/ms143504.aspx#New_Accounts,搜索RSAT 。