我最近在全新的 Windows 7 安装上安装了 Microsoft SQL Server 2012,但是每当我想运行服务器时,都会收到以下错误:
错误 1069:由于登录失败,服务未启动。
以下用户配置为启动服务:NT Service\MSSQL$SQLEXPRESS
我该如何解决这个问题?
我最近在全新的 Windows 7 安装上安装了 Microsoft SQL Server 2012,但是每当我想运行服务器时,都会收到以下错误:
错误 1069:由于登录失败,服务未启动。
以下用户配置为启动服务:NT Service\MSSQL$SQLEXPRESS
我该如何解决这个问题?
这个问题的答案可能与完整的 SQL Server (NTService\MSSQLSERVER) 的问题相同,这是重置密码。具有讽刺意味的是,没有密码。
步骤是:
这应该重新授予对服务的访问权限,并且应该重新启动。诡异的?
注意:如果问题在几个小时或几天后再次出现,那么您可能有一个覆盖您的设置的组策略,并且它会再次出现并立即再次出现。
这发生在我身上。域上的一项策略正在取消 SQL Server 用户帐户的“作为服务登录”权限。您可以使用 JLo 的解决方案解决此问题,但没有专门解决组策略问题,并且它会在下次在机器上刷新组策略时返回。
对我来说导致问题的具体策略是:在计算机配置 -> Windows 设置 -> 安全设置 -> 本地策略 -> 用户权限分配下:作为服务登录
您可以通过从命令行运行命令“rsop”来查看哪些策略正在应用于您的计算机。按照上面列出的策略路径,您将看到其当前值以及设置该值的 GPO。
虽然(“以系统方式运行”)有效,但应告知人们这意味着从最低权限类型的帐户变为拥有世界上所有权限的帐户。这不是推荐的设置最佳实践或安全方面的建议。
如果您知道自己在做什么,并且知道您的 SQL Server 将始终在隔离环境中运行(即不在酒店或机场 wifi 上),那可能没问题,但这会创建一个非常真实的攻击向量,如果在打开状态下可以完全危及机器互联网。
这似乎是微软的一个错误,人们应该意识到发布的解决方法的含义。
简短的回答:
在您的 SQL Server 上安装远程服务器管理工具(这是 Windows Server 的一个可选功能),重新启动,然后运行 SQL Server 配置管理器,访问登录帐户以“NT Service.. .",清除密码字段并重新启动服务。在幕后,SQL Server 配置管理器将为这些虚拟帐户分配作为服务登录的权限,然后您就可以开始使用了。
tl;博士;
Windows 域的默认设置和 SQL Server 2012 的默认安装之间有一个 catch-22。
如上所述,默认的 Windows 域设置确实会阻止您通过本地计算机上的组策略编辑定义“作为服务登录”权限(至少通过 GUI;如果您安装 Powershell ActiveDirectory 模块(通过远程服务器管理工具下载) 你可以通过脚本来做到这一点。
而且,默认情况下,SQL Server 2012 安装程序在“虚拟帐户”中运行服务(NT Service\ 前缀,例如 NT Service\MSSQLServer。这些类似于本地计算机帐户,而不是域帐户,但您仍然无法分配它们登录如果您的服务器加入域,则作为服务权限。SQL Server 安装程序会在安装时尝试分配权限,SQL Server 配置管理工具同样会在您更改登录帐户时尝试分配权限。
美丽的第 22 条规则是:SQL Server 工具依赖 RSAT 的(某些组件)将登录分配为服务权限。如果您的成员服务器上没有安装 RSAT,SQL Server 配置管理器会在尝试应用设置时静默失败(尽管它运行了所有华而不实的安装前验证),并且您最终会得到无法启动的服务。
我能够在 SQL Server 和虚拟帐户文档的暴风雪中找到的这个要求的一个提示是:https ://msdn.microsoft.com/en-us/library/ms143504.aspx#New_Accounts ,搜索 RSAT .
我有一个类似的问题,通过以下方式解决:
如果用户是域用户,请使用域用户名和密码
一种可能是安装了 sql server 数据工具 Bi,而 sql server 已经设置好了。
解决方案:- 1.只需用设置的实例修复sql server
如果解决方案不起作用,那么值得您花时间干预 services.msc
我不知道这是一个多么好的解决方案,但是在按照这个问题的其他一些答案但没有成功之后,我解决了将服务 MSSQLSERVER 的连接用户设置为“本地服务”的问题。
注意:我使用的是 SQL Server 2017。