授予文件系统访问 SQLSERVERAGENT 虚拟帐户的权限

Rya*_*yan 26 sql-server permissions sql-server-agent

我正在尝试NT Service\SQLSERVERAGENT根据此问题中的标记答案授予Windows 帐户文件系统访问权限。我相信这是一个虚拟服务帐户,它不会显示在控制面板 -> 用户帐户区域中。

如何授予此服务帐户访问文件系统的权限?具体来说,在 Windows 7 上。

我已经阅读了几种方法,但似乎没有一种方法适合我。我尝试了 PowerShell 方法,但 AD 命令不是有效命令。我什至下载并安装了这些命令所需的 Windows 补丁。我还了解到我应该能够通过 SQL Server 配置管理器或 Management Studio 执行此操作。不过,我似乎无法弄清楚在哪里调整这些权限。

SQL Server 代理进程无法启动,并显示以下错误消息:

Login failed for user 'NT SERVICE\SQLSERVERAGENT'.  
Reason: Failed to open the explicitly specified database 'msdb'.  
[CLIENT: <local machine>]
Run Code Online (Sandbox Code Playgroud)

根据我的谷歌搜索,它与此帐户的权限有关。

我不确定数据库是否已损坏,但它说数据库处于正常状态。SQL Server 代理登录是sysadminpublic组的一部分。

Sti*_*ing 24

为了专门回答您的问题,以下是您如何为内置的 SQL Server 代理帐户授予磁盘访问权限。但是当我回答我认为是真正的问题时,请继续阅读:

1.> 右键单击​​您的驱动器,选择属性,选择安全性,单击添加按钮并输入 SQLSERVERAGENT 帐户(确保在从此位置文本框中未选择您的域,而是您的计算机名称):

在此处输入图片说明

2.> 单击“检查名称”按钮以验证帐户是否有效:

在此处输入图片说明

3.> 现在,将您需要的文件权限添加到 SQLSERVERAGENT 帐户。出于故障排除的目的,您可能希望给予完全控制权,然后根据需要将其缩减:

在此处输入图片说明

话虽如此,根据我看到的有关 msdb 和登录名的评论,您可能只需要使用 SQL Server 配置管理器重新添加 SQL 代理用户。与使用 Windows 服务小程序相比,配置管理器对 SQL Server 进行的更改更多——因此配置管理器应始终用于更改任何 SQL 服务。

如果有人更改了 Windows 服务中的帐户,导致服务在启​​动时失败,这将解决该问题。您需要在配置管理器中重置它。这样做允许 Configuration Manager 将急需的权限添加到 SQL Server,以管理本地服务帐户 (NT SERVICE\SQLSERVERAGENT) 的 MSDB 数据库,而在 Windows 服务小程序中更改帐户则不然。

警告:2000 以上的 SQL Server Express 版本不包含 SQL 代理。它的某些方面似乎存在,但在产品的 Express 版本中无法使用。

首先,打开 SQL Server 配置管理器并双击 SQL Server 服务中的 SQL Server 代理服务。选择内置帐户单选按钮并选择本地服务,然后单击应用按钮。重要提示:如果您已经看到此帐户已被选中,请选择另一个帐户并单击“应用”按钮。然后,将其更改回本地服务并单击应用按钮以允许配置管理器添加正确的 MSDB 权限以启动 SQL 代理服务。现在,重新启动 SQL Server 代理以反映此新设置。

在此处输入图片说明