SQL Server服务帐户Windows特权和权限


12

我的问题是,如果您为每个SQL Server进程创建一个新的域用户帐户,则应为每个帐户设置什么权限?还是SQL配置管理器实际上会解决这个问题,而我只是遇到了无法预料的问题?

我经常不得不设置Microsoft SQL Server,并且想知道是否有人可以提供有关配置服务应以其身份运行的帐户的建议。IMO已被Microsoft模糊地记录在案,尽管他们指出了正确的方向,但我从未找到任何具体的例子。

总结到目前为止我所看到的:

对于简单的部署\开发环境,可以使用安装程序使用的默认虚拟帐户: NT SERVICE\MSSQLSERVER

避免使用该SYSTEM帐户,这是不安全的。

对于生产环境和域环境,建议为每个服务使用托管服务帐户或创建域用户帐户(而非管理员)。据称,如果您在安装时使用域帐户,则安装程序将为您设置任何必需的权限。

如果将现有安装上的服务帐户从虚拟帐户更改为域帐户,建议使用SQL Server配置管理器设置新的服务帐户。据说这将为您设置任何必需的权限。

我只是尝试将现有安装中的服务帐户更改为域帐户,这会导致登录失败,直到我授予该帐户log on as service权限为止,这与SQL Server配置管理器将设置任何必需权限的部分相矛盾。(尽管我不确定GPO是否会干扰设置此本地安全策略)

Microsoft确实在此页面上提供了SQL Server安装程序授予的权限列表。

但是我不清楚这是否是我应该为创建该用户以运行该服务的用户手动执行的操作,还是使用SQL配置管理器是否应自动设置这些权限。

SQL Server 2014域控制器位于Windows Server 2008 R2上。


哪个版本的SQL?这是AD环境吗?如果是这样,什么是域级别?
凯瑟琳·维尔德

谢谢,我已经将版本添加到了问题中。SQL Server 2014,域控制器在Windows Server 2008 R2功能级别上

1
在我看来,这看起来像是模糊的文档。这看起来很全面。- msdn.microsoft.com/en-us/library/ms143504.aspx

是的,我同意,总体而言文档是好的,但是我不确定的部分含糊不清是我的意思。您是对的,总的来说文档非常详细。
plumdog

Answers:


10

我经常不得不设置MS SQL Server,并且想知道是否有人可以提供有关配置服务应以其身份运行的帐户的建议。IMO已被Microsoft模糊地记录在案,尽管他们指出了正确的方向,但我从未找到任何具体的例子。

实际上已经对其进行了彻底的记录:http : //msdn.microsoft.com/zh-cn/library/ms143504.aspx

您不确定其中的一部分吗?

对于简单的部署\开发环境,可以使用安装程序使用的默认虚拟帐户:例如NT SERVICE \ MSSQLSERVER

这将取决于环境。我个人不希望找到使用本地帐户进行设置的服务器,并且要求将来将来某个时间访问网络资源等问题。

对于生产环境和域环境,建议使用托管服务帐户,或为每个服务创建域用户帐户(而非管理员)。

再次,取决于,但通常我会同意(一个反例是可用性组,在所有情况下使用单个域帐户是有意义的)。

据称,如果您在安装时使用域帐户,则安装程序将为您设置任何必需的权限。

除非出现故障等,否则它将这样做。我不确定为什么是“所谓的”部分。

如果将现有安装上的服务帐户从虚拟帐户更改为域帐户,建议使用SQL Server配置管理器设置新的服务帐户。据说这将为您设置任何必需的权限。

更改SQL Server的任何服务时,请始终使用SSCM。总是。期。它将新帐户的权限设置为基础。如果在使用本地系统帐户之前,并且拥有对系统上所有内容的无限制权限,由于安全性受到更严格的控制,我希望更改后某些权限会失败。这不是SQL Server SSCM错误,不是管理员错误,即未授予适当的EXTRA权限(例如访问网络共享,受限文件夹,SQL Server安装权限之外的项目等)。

我只是尝试将现有安装中的服务帐户更改为域帐户,这会给我登录失败,直到我授予该帐户“作为服务登录”权限,这与SQL Server配置管理器将设置任何必需项的部分相矛盾。权限。(尽管我不确定GPO是否会干扰设置此本地安全策略)

听起来像是GPO引起了问题(IMHO)。不会是第一次:)

所以我的问题是,如果您为每个SQL Server进程创建一个新的域用户帐户,应该为每个帐户设置什么权限?

我将明确设置超出上面我在msdn链接中指定的权限(也由@joeqwerty和您的OP授予)。例如,在网络共享上的“备份”文件夹上,添加到用于保存新数据库的新驱动器上(已在其中运行安装程序但该驱动器不存在)等。

但是我不清楚这是否是我应该为创建该用户以运行该服务的用户手动执行的操作,还是使用SQL配置管理器是否应自动设置这些权限。

除非服务器发生严重故障,否则不必手动给出这些信息。


感谢您的答复,我同意您的意见。我在另一个干净的VM上安装了SQL Server进行检查,并且能够从虚拟帐户NT SERVICE / MSSQLSERVER交换到域用户帐户,并且它没有任何问题。因此,我认为答案就是您所说的,使用SQL Server配置管理器更改服务用户帐户登录,并且不需要其他权限。
plumdog

另外有一条评论,对不起,我可以将我的主要观点放在帖子的顶部,这将使我的问题更加清楚,我以后会做。我不确定的主要问题是;[如果为每个SQL Server进程创建一个新的域用户帐户,则应为每个帐户设置什么权限?...]。我认为文档在这一部分中含糊不清的原因是因为存在一组已设置的权限,但是尚不清楚SSCM是否会为您设置这些权限。
plumdog

@plumdog在您的第二条评论中,大多数权限由安装程序提供。虚拟服务帐户和sid与此相关,这就是为什么应始终使用SSCM以便正确执行与之相关的权限的进出转移的原因,例如与服务主密钥加密相关的安全性等。 。
肖恩Gallardy
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.