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


23

我正在尝试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>]

根据我的Google搜索,它与该帐户的权限有关。

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

Answers:


18

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

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

在此处输入图片说明

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

在此处输入图片说明

3.>现在,将所需的文件权限添加到SQLSERVERAGENT帐户。为了进行故障排除,您可能需要授予“完全控制”权限,然后根据需要将其缩放到稍后:

在此处输入图片说明

话虽如此,根据我看到的有关msdb和登录名的注释,您可能只需要使用SQL Server配置管理器来重新添加SQL Agent用户。与使用Windows服务小程序相比,配置管理器对SQL Server所做的更改更多-因此应始终使用配置管理器来更改ANY SQL服务。

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

注意:2000或更高版本的SQL Server Express不包含SQL代理。它的某些方面似乎存在,但是在产品的Express版本中无法使用。

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

在此处输入图片说明


1
我的SQL Server代理帐户已设置为,NT Service\SQLAgent$MyInstanceName并尝试在文件夹上设置安全性,然后按“检查名称”表示“名称未找到并且找不到”。沮丧之后,我意识到按“添加”添加权限时默认的“来自此位置”未设置为本地计算机,而是设置为我的域。将其更改为我的本地计算机(树中的非常根节点)使它能够检测到我的NT Service\SQLAgent$MyInstanceName帐户,以将其添加到文件夹权限。
NibblyPig

我从记录错误的事件日志中获得了“ MyInstanceName”。
Jasen

2

我通过将SQL Server代理登录帐户设置为LocalSystem解决了此问题。


2
尽管这是可以使事情正常运行的解决方法,但通常认为它不如使用此答案中
RDFozz

2

我同意令人沮丧。.显然,就像输入名称一样简单。 http://zarez.net/?p=3187

摘要:键入NT SERVICE \ MSSQLSERVER,然后不要单击“检查名称”,只需单击“确定”即可为SQL代理帐户设置文件夹权限。


1
欢迎使用DBA SE!我没有投票。您的答案属于“仅链接答案”类别。当远端发生故障时,这些答案变得难以理解。您帖子的审阅者应该对您说过,这是他们的错误。因此:1)您的答案实际上应该是(对于顶部问题的答案)2)如果您引用了任何内容,请引用某个网页,并将其最重要的内容也粘贴到该帖子中。| 我给了你一个赞,但是我建议说服其他评论者。
彼得说恢复莫妮卡

很棒的建议@peterh,感谢您的帮助。贾森(V Jason),我已经将您评论中的摘要添加到您的答案中,这可能就足够了,但是您可能想查看一下是否要添加其他内容。感谢所有改进!
杰克·道格拉斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.