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

plu*_*dog 14 sql-server configuration sql-server-2014 service-accounts

我的问题是,如果为每个 SQL Server 进程创建一个新的域用户帐户,应该为每个帐户设置什么权限?或者 SQL 配置管理器是否真的处理了这个问题,而我只是遇到了一个无法预料的问题?

我经常不得不设置 Microsoft SQL Server,并想知道是否有人可以提供有关配置服务应作为运行的帐户的建议。IMO 这已经被微软模糊地记录了下来,虽然他们为你指明了正确的方向,但我从来没有找到任何具体的例子。

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

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

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

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

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

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

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

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

SQL Server 2014,域控制器在 Windows Server 2008 R2 上。

Sea*_*ser 10

我经常需要设置 MS SQL Server,并想知道是否有人可以提供有关配置服务应该运行的帐户的建议。IMO 这已经被微软模糊地记录了下来,虽然他们为你指明了正确的方向,但我从来没有找到任何具体的例子。

它实际上记录得非常彻底:http : //msdn.microsoft.com/en-us/library/ms143504.aspx

有没有你不确定的部分?

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

这将取决于环境。我个人讨厌找到某人使用本地帐户设置的服务器,并要求在未来某个时间访问网络资源,以及其他问题。

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

同样,取决于,但通常我会同意(反例是可用性组,其中在所有实例中使用单个域帐户是有意义的)。

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

除非出现故障等,否则它会这样做。我不确定为什么是“据称”部分。

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

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

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

听起来像是 GPO 导致了问题(恕我直言)。不会是第一次:)

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

我会明确设置我上面的 msdn 链接中所述的权限之外的任何权限(也由@joeqwerty 和您的 OP 给出)。例如,在网络共享上的“备份”文件夹上,在添加以保存新数据库的新驱动器上(安装程序已经运行但驱动器不存在)等。

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

除非服务器严重损坏,否则不必手动提供这些。