SQL 服务器代理:无法启动,无法启动 - 将 'Log On' 帐户更改为托管服务帐户

SQL Server Agent: Can't Start, Won't Start - Changing the 'Log On' account to a Managed Service Account

溢出社区,

我有一个问题已经困扰我好几个小时了。我搜索了 Google 解决方案并尝试了(感觉如何)它们。

为了使我们的测试环境更符合我们的生产环境,我最近更新了 SQL 服务器代理 'Log On As' 以使用托管服务帐户,现在无法再启动SQL 服务器代理服务。

如果我尝试启动该服务,我会收到“无法初始化 SQL 代理日志。访问被拒绝”。如果我尝试将 'Log On As' 更改回任何其他帐户,我会收到“WMI 提供程序错误。进程意外终止 [0.8007042b]”。

例如:

我现在确实无法启动此服务。

我可以确认托管服务帐户对 SQL Server Agent 日志所在的所有文件夹具有所有权限(完全控制除外)。我已确认注册表和服务属性都包含正确的SQL 服务器代理日志目录。

查看事件查看器在 Windows 日志 > 应用程序文件夹下显示与上面解释的完全相同:“无法初始化 SQL 代理日志。访问被拒绝”。

请问有人可以提供任何指导吗?如果需要更多信息,请告诉我,我会提供。

不幸的是,我不得不按照上面的评论进行操作。我摆脱这个糟糕循环的唯一方法是重新安装 SQL。对我来说,这包括执行以下操作:

备份数据库 > 卸载所有 SQL 程序和组件 > 删除所有驱动器上的所有 SQL 文件和文件夹 > 重新安装 SQL(确保为服务分配了正确的帐户!) > 从备份中恢复所有数据库 > 检查服务 运行 是否正确。

值得提醒的是,幸运的是这是在测试环境中,所以我有一些空间可以玩。尽管如此,这是我找到解决问题的唯一方法。我还想澄清一下,我之前没有设置这些环境的历史。

全新安装 SQL Server 2016 Developer Edition 我无法启动 SQL Server Agent。我使用所有默认值进行安装。分配给 运行 SQLAGENT.EXE 服务的用户是 NT Service\SQLSERVERAGENT。

事件日志有错误: 无法初始化 SQL 代理日志(原因:访问被拒绝)。事件 ID:324

即使用户对日志文件夹 C:\Program Files\Microsoft SQL Server\MSSQL13 具有适当的安全权限(读取和执行、列出文件夹内容、读取、写入)。 MSSQLSERVER\MSSQL\Log,当我检查该日志文件夹中 SQLAGENT.OUT 文件的权限时,权限并没有下降。用户没有为该文件分配权限。

我为用户向该特定文件应用了四个权限,我的 SQL 服务器代理服务成功启动。

不确定为什么文件没有从父文件夹获得权限,或者其他日志文件是否需要相同的调整(SQLAGENT.1、SQLAGENT.2、等等...).