配置 Windows 服务帐户和权限

SQL Server 中的每个服务表示一个或一组进程,用于通过 Windows 管理 SQL Server 操作的身份验证。 本主题描述此版本 SQL Server 中服务的默认配置,还介绍在 SQL Server 安装期间及安装后设置的 SQL Server 服务的配置选项。

目录

本主题分为以下几个部分:

SQL Server 安装的服务

根据你决定安装的组件,SQL Server 安装程序将安装以下服务:

  • SQL Server 数据库服务 - SQL Server 关系性 数据库引擎 的服务。 可执行文件为 <MSSQLPATH>\MSSQL\Binn\sqlservr.exe。

  • SQL Server 代理 - 执行作业、监视 SQL Server、激发警报,并允许自动执行某些管理任务。 SQL Server Express 的实例上存在 SQL Server 代理服务,但它处于禁用状态。 可执行文件为 <MSSQLPATH>\MSSQL\Binn\sqlagent.exe。

  • Analysis Services - 为商业智能应用程序提供联机分析处理 (OLAP) 和数据挖掘功能。 可执行文件为 <MSSQLPATH>\OLAP\Bin\msmdsrv.exe。

  • Reporting Services - 管理、执行、创建、计划和传递报表。 可执行文件为 <MSSQLPATH>\Reporting Services\ReportServer\Bin\ReportingServicesService.exe。

  • Integration Services - 为 Integration Services 包的存储和执行提供管理支持。 可执行路径为 <MSSQLPATH>\120\DTS\Binn\MsDtsSrvr.exe

  • SQL Server Browser - 向客户端计算机提供 SQL Server 连接信息的名称解析服务。 可执行文件的路径为 c:\Program Files (x86)\Microsoft SQL Server\90\Shared\sqlbrowser.exe

  • 全文搜索 - 对结构化和半结构化数据的内容和属性快速创建全文索引,从而为 SQL Server 提供文档筛选和断字功能。

  • SQL 编写器 - 允许备份和还原应用程序在卷影复制服务 (VSS) 框架中运行。

  • SQL Server 分布式重播控制器 - 跨多个分布式重播客户端计算机提供跟踪重播业务流程。

  • SQL Server Distributed Replay 客户端 - 与 Distributed Replay 控制器一起来模拟针对 SQL Server 数据库引擎 实例的并发工作负载的一台或多台 Distributed Replay 客户端计算机。

服务属性和配置

用于启动和运行 SQL Server 的启动帐户可以是域用户帐户本地用户帐户托管服务帐户虚拟帐户内置系统帐户。 若要启动和运行 SQL Server 中的每项服务,这些服务都必须有一个在安装过程中配置的启动帐户。

此部分介绍可配置为启动 SQL Server 服务的帐户、SQL Server 安装程序使用的默认值、Per-service SID 的概念、启动选项以及配置防火墙。

默认服务帐户

下表列出了安装程序在安装所有组件时使用的默认服务帐户。 列出的默认帐户是建议使用的帐户,但特殊注明的除外。

独立服务器或域控制器

组件 Windows Server 2008 Windows 7 和 Windows 2008 Server R2 及更高版本
数据库引擎 NETWORK SERVICE 虚拟帐户*
SQL Server 代理 NETWORK SERVICE 虚拟帐户*
SSAS NETWORK SERVICE 虚拟帐户*
SSIS NETWORK SERVICE 虚拟帐户*
SSRS NETWORK SERVICE 虚拟帐户*
SQL Server Distributed Replay 控制器 NETWORK SERVICE 虚拟帐户*
SQL Server Distributed Replay 客户端 NETWORK SERVICE 虚拟帐户*
FD 启动器(全文搜索) LOCAL SERVICE 虚拟帐户
SQL Server Browser LOCAL SERVICE LOCAL SERVICE
SQL Server VSS 编写器 LOCAL SYSTEM LOCAL SYSTEM

*如果需要SQL Server计算机外部的资源,Microsoft 建议使用托管服务帐户 (MSA) ,该帐户配置了所需的最低权限。

SQL Server 故障转移群集实例

组件 Windows Server 2008 Windows Server 2008 R2
数据库引擎 无。 提供 域用户 帐户。 提供 域用户 帐户。
SQL Server 代理 无。 提供 域用户 帐户。 提供 域用户 帐户。
SSAS 无。 提供 域用户 帐户。 提供 域用户 帐户。
SSIS NETWORK SERVICE 虚拟帐户
SSRS NETWORK SERVICE 虚拟帐户
FD 启动器(全文搜索) LOCAL SERVICE 虚拟帐户
SQL Server Browser LOCAL SERVICE LOCAL SERVICE
SQL Server VSS 编写器 LOCAL SYSTEM LOCAL SYSTEM

更改帐户属性

重要

  • 始终使用 SQL Server 工具(例如 SQL Server 配置管理器)来更改 SQL Server 数据库引擎 或 SQL Server 代理服务使用的帐户,或者更改帐户的密码。 除了更改帐户名称,SQL Server 配置管理器还可执行其他配置,例如,更新保护 数据库引擎 的服务主密钥的 Windows 本地安全存储区。 其他工具(例如 Windows 服务控制管理器)可以更改帐户名称,但不更改所有必需的设置。
  • 对于在 SharePoint 场中部署的 Analysis Services 实例,请始终使用 SharePoint 管理中心更改 PowerPivot 服务应用程序和 Analysis Services 服务的服务器帐户。 使用管理中心时,关联的设置和权限将更新为使用新的帐户信息。
  • 若要更改 Reporting Services 选项,请使用 Reporting Services 配置工具。

可用于 Windows 7 和 Windows Server 2008 R2 的新帐户类型

Windows 7 和 Windows Server 2008 R2 有两种新型的服务帐户,即托管服务帐户 (MSA) 和虚拟帐户。 托管服务帐户和虚拟帐户旨在为关键应用程序(如 SQL Server)提供其自己的帐户隔离,同时无需管理员手动管理这些帐户的服务主体名称 (SPN) 和凭据。 这就使得管理服务帐户用户、密码和 SPN 的过程变得简单得多。

  • 托管服务帐户

    托管服务帐户 (MSA) 是一种由域控制器创建和管理的域帐户。 它分配给单个成员计算机以用于运行服务。 域控制器将自动管理密码。 您不能使用 MSA 登录到计算机,但计算机可以使用 MSA 来启动 Windows 服务。 MSA 可以向 Active Directory 注册服务主体名称 (SPN)。 MSA 的名称中有一个 $ 后缀,例如 DOMAIN\ACCOUNTNAME$ 。 在指定 MSA 时,请将密码留空。 因为将 MSA 分配给单个计算机,它不能用于 Windows 群集的不同节点。

    备注

    域管理员必须先在 Active Directory 中创建 MSA,然后 SQL Server 安装程序才能将其用于 SQL Server 服务。

  • 组托管服务帐户

    组托管服务帐户是针对多个服务器的 MSA。 Windows 为在一组服务器上运行的服务管理服务帐户。 Active Directory 自动更新组托管服务帐户密码,而不重启服务。 可以将SQL Server服务配置为使用组托管服务帐户主体。从 SQL Server 2014 开始,SQL Server支持独立实例的组托管服务帐户。

    若要使用 SQL Server 2014 或更高版本的组托管服务帐户,操作系统必须是 Windows Server 2012 R2 或更高版本。 装有 Windows Server 2012 R2 的服务器需要应用 KB 2998082 ,以便服务可以在密码更改后立即登录而不中断。

    有关详细信息,请参阅 组托管服务帐户

    注意

    组托管服务帐户必须由域管理员在 Active Directory 中创建,SQL Server安装程序才能将其用于SQL Server服务。

  • Virtual Accounts

    虚拟帐户(从 Windows Server 2008 R2 和 Windows 7 开始)是“托管的本地帐户” ,此类帐户提供以下功能,可简化服务管理。 虚拟帐户是自动管理的,并且虚拟帐户可以访问域环境中的网络。 如果在安装 SQL Server 期间对服务帐户使用默认值,则会使用将实例名称用作服务名称的虚拟帐户,格式为 NT SERVICE\<SERVICENAME>。 以虚拟帐户身份运行的服务通过使用计算机帐户的凭据(格式为 <domain_name>\<computer_name>$)访问网络资源。 当指定一个虚拟帐户来启动 SQL Server 时,应将密码留空。 如果虚拟帐户无法注册服务主体名称 (SPN),则手动注册该 SPN。 有关手动注册 SPN 的详细信息,请参阅 手动注册 SPN

    注意

    虚拟帐户不能用于SQL Server故障转移群集实例,因为虚拟帐户不会在群集的每个节点上具有相同的 SID。

    下表列出了虚拟帐户名称的示例。

    服务 虚拟帐户名称
    数据库引擎 服务的默认实例 NT SERVICE\MSSQLSERVER
    名为 数据库引擎 的 服务的命名实例 NT SERVICE\MSSQL$PAYROLL
    SQL Server 的默认实例上的 SQL Server 代理服务 NT SERVICE\SQLSERVERAGENT
    名为 PAYROLL 的 SQL Server 实例上 SQL Server 代理服务 NT SERVICE\SQLAGENT$PAYROLL

有关托管服务帐户和虚拟帐户的详细信息,请参阅 服务帐户分步指南托管服务和虚拟帐户概念 部分以及 托管服务帐户常见问题解答 (FAQ)

安全说明:始终使用尽可能低的用户权限运行SQL Server服务。 只要可能, 就会使用 MSA虚拟帐户。 如果 MSA 和虚拟帐户不可用,请使用特定的低特权用户帐户或域帐户,而不是共享帐户来SQL Server服务。 对不同的 SQL Server 服务使用单独的帐户。 不要向SQL Server服务帐户或服务组授予其他权限。 在支持服务 SID 的情况下,将通过组成员身份或直接将权限授予服务 SID。

自动启动

除了具有用户帐户外,每项服务还有用户可控制的三种可能的启动状态:

  • 已禁用 服务已安装但当前未运行。

  • 手动 服务已安装,但仅当另一个服务或应用程序需要该服务的功能时才启动。

  • 自动 服务由操作系统自动启动。

在安装过程中,启动状态处于选中状态。 安装命名实例时,SQL Server Browser 服务应设置为自动启动。

在无人参与的安装过程中配置服务

下表显示了可在安装过程中配置的 SQL Server 服务。 对于无人参与的安装,可以在配置文件中或在命令提示符下使用开关。

SQL Server 服务名称 无人参与安装的开关1
MSSQLSERVER SQLSVCACCOUNT、SQLSVCPASSWORD、SQLSVCSTARTUPTYPE
SQLServerAgent2 AGTSVCACCOUNT、AGTSVCPASSWORD、AGTSVCSTARTUPTYPE
MSSQLServerOLAPService ASSVCACCOUNT、ASSVCPASSWORD、ASSVCSTARTUPTYPE
ReportServer RSSVCACCOUNT、RSSVCPASSWORD、RSSVCSTARTUPTYPE
Integration Services ISSVCACCOUNT、ISSVCPASSWORD、ISSVCSTARTUPTYPE
SQL Server Distributed Replay 控制器 DRU_CTLR、CTLRSVCACCOUNT、CTLRSVCPASSWORD、CTLRSTARTUPTYPE、CTLRUSERS
SQL Server Distributed Replay 客户端 DRU_CLT、CLTSVCACCOUNT、CLTSVCPASSWORD、CLTSTARTUPTYPE、CLTCTLRNAME、CLTWORKINGDIR、CLTRESULTDIR

1有关无人参与安装的详细信息和示例语法,请参阅从命令提示符安装 SQL Server 2014

2SQL Server 代理服务在SQL Server Express实例上禁用,并使用高级服务SQL Server Express。

防火墙端口

在大多数情况下,首次安装时,可通过与 SQL Server 安装在相同计算机上的 SQL Server Management Studio 等此类工具连接 数据库引擎。 SQL Server安装程序不会在 Windows 防火墙中打开端口。 在将 数据库引擎 配置为侦听 TCP 端口,并且在 Windows 防火墙中打开适当的端口进行连接之前,将无法从其他计算机建立连接。 有关详细信息,请参阅 配置 Windows 防火墙以允许 SQL Server 访问

服务权限

此部分介绍了 SQL Server 安装程序为 SQL Server 服务的 Per-service SID 配置的权限。

服务配置和访问控制

SQL Server 2014 允许其每个服务的按服务 SID 来提供服务隔离和深层防御。 Per-service SID 从服务名称派生得到,对该服务是唯一的。 例如,数据库引擎服务的服务 SID 名称可能是 NT Service\MSSQL$<InstanceName>。 通过服务隔离,可直接访问特定的对象,而无需运行高特权帐户,也不会削弱为对象提供的安全保护水平。 通过使用包含服务 SID 的访问控制项,SQL Server 服务可限制对其资源的访问。

注意

在 Windows 7 和 Windows 2008 Server R2(及更高版本)上,Per-service SID 可以是服务使用的虚拟帐户。

对于大多数组件,SQL Server 直接为 Per-service 帐户配置 ACL,因此无需重复资源 ACL 过程即可更改此服务帐户。

当安装 SSAS时,将创建 Analysis Services 服务的 Per-service SID。 创建了本地 Windows 组,其命名格式为 SQLServerMSASUser$computer_name$instance_name。 Per-service SID NT SERVICE\MSSQLServerOLAPService 已被授予本地 Windows 组中的成员资格,而本地 Windows 组在 ACL 中被授予了适当的权限。 如果用于启动 Analysis Services 服务的帐户已更改,SQL Server 配置管理器必须更改某些 Windows 权限 (例如作为服务) 登录的权限,但分配给本地 Windows 组的权限仍可用,无需进行任何更新,因为每个服务的 SID 未发生更改。 此方法允许在升级过程中重命名 Analysis Services 服务。

在SQL Server安装过程中,SQL Server安装程序为 SSAS 和 SQL Server Browser 服务创建本地 Windows 组。 对于这些服务,SQL Server 将为此本地 Windows 组配置 ACL。

在安装或升级期间,系统可能会将服务或服务 SID 的服务帐户添加为服务组的成员,具体取决于服务配置。

Windows 特权和权限

为启动服务分配的帐户需要对于服务的 启动、停止和暂停权限 。 SQL Server 安装程序会自动分配此权限。 首先,安装远程服务器管理工具 (RSAT)。 请参阅 Remote Server Administration Tools for Windows 7(Windows 7 的远程服务器管理工具)。

下表说明 SQL Server 安装程序为 SQL Server 组件使用的 Per-service SID 或本地 Windows 组请求的权限。

SQL Server 服务 SQL Server 安装程序授予的权限
SQL Server 数据库引擎:

(向每个服务 SID 授予所有权限。默认实例: NT SERVICE\MSSQLSERVER。命名实例:**NT SERVICE\MSSQL$**InstanceName.)
以服务身份登录 (SeServiceLogonRight)

替换进程级别标记 (SeAssignPrimaryTokenPrivilege)

跳过遍历检查 (SeChangeNotifyPrivilege)

调整进程的内存配额 (SeIncreaseQuotaPrivilege)

启动 SQL 编写器的权限

读取事件日志服务的权限

读取远程过程调用服务的权限
SQL Server 代理:1

(向每个服务 SID 授予所有权限。默认实例:NT Service\SQLSERVERAGENT。命名实例:NT Service\SQLAGENT$InstanceName。)
以服务身份登录 (SeServiceLogonRight)

替换进程级别标记 (SeAssignPrimaryTokenPrivilege)

跳过遍历检查 (SeChangeNotifyPrivilege)

调整进程的内存配额 (SeIncreaseQuotaPrivilege)
SSAS:

(向本地 Windows 组授予所有权限。默认实例: SQLServerMSASUser$ComputerName$MSSQLSERVER。命名实例: SQLServerMSASUser$ComputerName$InstanceName。PowerPivot for SharePoint 实例: SQLServerMSASUser$ComputerName$PowerPivot.)
以服务身份登录 (SeServiceLogonRight)

仅适用于表格:

增加进程工作集 (SeIncreaseWorkingSetPrivilege)

调整进程的内存配额 (SeIncreaseQuotaSizePrivilege)

“锁定内存页”(SeLockMemoryPrivilege) - 仅当完全关闭分页时才需要。

仅适用于故障转移群集安装:

提高计划优先级 (SeIncreaseBasePriorityPrivilege)
SSRS:

(向每个服务 SID 授予所有权限。默认实例: NT SERVICE\ReportServer。命名实例: NT SERVICE\$InstanceName.)
以服务身份登录 (SeServiceLogonRight)
SSIS:

(向每个服务 SID 授予所有权限。默认实例和命名实例: NT SERVICE\MsDtsServer120。Integration Services 没有针对命名实例的单独进程。)
以服务身份登录 (SeServiceLogonRight)

应用程序事件日志的写入权限。

跳过遍历检查 (SeChangeNotifyPrivilege)

身份验证后模拟客户端 (SeImpersonatePrivilege)
全文搜索:

(向每个服务 SID 授予所有权限。默认实例:NT Service\MSSQLFDLauncher。命名实例:NT Service\ MSSQLFDLauncher$InstanceName。)
以服务身份登录 (SeServiceLogonRight)

调整进程的内存配额 (SeIncreaseQuotaPrivilege)

跳过遍历检查 (SeChangeNotifyPrivilege)
SQL Server Browser:

(向本地 Windows 组授予所有权限。默认实例或命名实例:SQLServer2005SQLBrowserUser$ComputerName。SQL Server Browser 没有针对命名实例的单独进程。)
以服务身份登录 (SeServiceLogonRight)
SQL Server VSS 编写器:

(向每个服务 SID 授予所有权限。默认实例或命名实例:NT Service\SQLWriter。SQL Server VSS 编写器没有针对命名实例的单独进程。)
SQLWriter 服务在具有所需的所有权限的 LOCAL SYSTEM 帐户下运行。 SQL Server安装程序不会为此服务检查或授予权限。
SQL Server Distributed Replay 控制器: 以服务身份登录 (SeServiceLogonRight)
SQL Server Distributed Replay 客户端: 以服务身份登录 (SeServiceLogonRight)

1在 SQL Server Express 实例上禁用SQL Server 代理服务。

授予 SQL Server Per-service SID 或本地 Windows 组的文件系统权限

SQL Server 服务帐户必须有权访问资源。 为 Per-service SID 或本地 Windows 组设置了访问控制列表。

重要

对于故障转移群集安装,必须为本地帐户的 ACL 设置共享磁盘上的资源。

下表显示了 SQL Server 安装程序设置的 ACL:

服务帐户针对 文件和文件夹 访问
MSSQLServer Instid\MSSQL\backup 完全控制
Instid\MSSQL\binn 读取和执行
Instid\MSSQL\data 完全控制
Instid\MSSQL\FTData 完全控制
Instid\MSSQL\Install 读取和执行
Instid\MSSQL\Log 完全控制
Instid\MSSQL\Repldata 完全控制
120\shared 读取和执行
Instid\MSSQL\Template Data(仅限SQL Server Express ) 读取
SQLServerAgent1 Instid\MSSQL\binn 完全控制
Instid\MSSQL\binn 完全控制
Instid\MSSQL\Log 读取、写入、删除和执行
120\com 读取和执行
120\shared 读取和执行
120\shared\Errordumps 读取和写入
ServerName\EventLog 完全控制
FTS Instid\MSSQL\FTData 完全控制
Instid\MSSQL\FTRef 读取和执行
120\shared 读取和执行
120\shared\Errordumps 读取和写入
Instid\MSSQL\Install 读取和执行
Instid\MSSQL\jobs 读取和写入
MSSQLServerOLAPService 120\shared\ASConfig 完全控制
Instid\OLAP 读取和执行
Instid\Olap\Data 完全控制
Instid\Olap\Log 读取和写入
Instid\OLAP\Backup 读取和写入
Instid\OLAP\Temp 读取和写入
120\shared\Errordumps 读取和写入
ReportServer Instid\Reporting Services\Log Files 读取、写入、删除
Instid\Reporting Services\ReportServer 读取和执行
Instid\Reporting Services\ReportServer\global.asax 完全控制
Instid\Reporting Services\ReportServer\rsreportserver.config 读取
Instid\Reporting Services\reportManager 读取和执行
Instid\Reporting Services\RSTempfiles 读取、写入、执行、删除
120\shared 读取和执行
120\shared\Errordumps 读取和写入
MSDTSServer100 120\dts\binn\MsDtsSrvr.ini.xml 读取
120\dts\binn 读取和执行
120\shared 读取和执行
120\shared\Errordumps 读取和写入
SQL Server Browser 120\shared\ASConfig 读取
120\shared 读取和执行
120\shared\Errordumps 读取和写入
SQLWriter 不适用(以 Local System 身份运行)
用户 Instid\MSSQL\binn 读取和执行
Instid\Reporting Services\ReportServer 读取、执行和列出文件夹内容
Instid\Reporting Services\ReportServer\global.asax 读取
Instid\Reporting Services\reportManager 读取和执行
Instid\Reporting Services\ReportManager\pages 读取
Instid\Reporting Services\ReportManager\Styles 读取
120\dts 读取和执行
120\tools 读取和执行
100\tools 读取和执行
90\tools 读取和执行
80\tools 读取和执行
120\sdk 读取
Microsoft SQL Server\120\Setup Bootstrap 读取和执行
SQL Server Distributed Replay 控制器 <ToolsDir>\DReplayController\Log\(空目录) 读取、执行和列出文件夹内容
<ToolsDir>\DReplayController\DReplayController.exe 读取、执行和列出文件夹内容
<ToolsDir>\DReplayController\resources|读取、执行和列出文件夹内容
<ToolsDir>\DReplayController\{all dlls} 读取、执行和列出文件夹内容
<ToolsDir>\DReplayController\DReplayController.config 读取、执行和列出文件夹内容
<ToolsDir>\DReplayController\IRTemplate.tdf 读取、执行和列出文件夹内容
<ToolsDir>\DReplayController\IRDefinition.xml 读取、执行和列出文件夹内容
SQL Server Distributed Replay 客户端 <ToolsDir>\DReplayClient\Log|读取、执行和列出文件夹内容
<ToolsDir>\DReplayClient\DReplayClient.exe 读取、执行和列出文件夹内容
<ToolsDir>\DReplayClient\resources|读取、执行和列出文件夹内容
<ToolsDir>\DReplayClient\ (all dlls) 读取、执行和列出文件夹内容
<ToolsDir>\DReplayClient\DReplayClient.config 读取、执行和列出文件夹内容
<ToolsDir>\DReplayClient\IRTemplate.tdf 读取、执行和列出文件夹内容
<ToolsDir>\DReplayClient\IRDefinition.xml 读取、执行和列出文件夹内容

1SQL Server 代理服务在SQL Server Express实例上禁用,并使用高级服务SQL Server Express。

当数据库文件存储在用户定义的位置时,您必须授予每个服务 SID 访问该位置的权限。 有关将文件系统权限授予 Per-service SID 的详细信息,请参阅 配置数据库引擎访问的文件系统权限

授予其他 Windows 用户帐户或组的文件系统权限

可能还必须向内置帐户或其他 SQL Server 服务帐户授予某些访问控制权限。 下表列出了 SQL Server 安装程序设置的其他 ACL。

请求组件 帐户 资源 权限
MSSQLServer 性能日志用户 Instid\MSSQL\binn 列出文件夹内容
性能监视器用户 Instid\MSSQL\binn 列出文件夹内容
性能日志用户、性能监视器用户 \WINNT\system32\sqlctr120.dll 读取和执行
仅限于管理员 \\.\root\Microsoft\SqlServer\ServerEvents\<sql_instance_name>1 完全控制
管理员和系统 \tools\binn\schemas\sqlserver\2004\07\showplan 完全控制
用户 \tools\binn\schemas\sqlserver\2004\07\showplan 读取和执行
Reporting Services 报表服务器 Windows 服务帐户 <install>\Reporting Services\LogFiles DELETE

READ_CONTROL

SYNCHRONIZE

FILE_GENERIC_READ

FILE_GENERIC_WRITE

FILE_READ_DATA

FILE_WRITE_DATA

FILE_APPEND_DATA

FILE_READ_EA

FILE_WRITE_EA

FILE_READ_ATTRIBUTES

FILE_WRITE_ATTRIBUTES
报表服务器 Windows 服务帐户,每个人 <install>\Reporting Services\ReportManager,<install>\Reporting Services\ReportManager\Pages\*.*,<install>\Reporting Services\ReportManager\Styles\*.*, <install>\Reporting Services\ReportManager\webctrl_client\1_0\*.* 读取和执行
报表服务器 Windows 服务帐户 <install>\Reporting Services\ReportServer 读取
报表服务器 Windows 服务帐户 <install>\Reporting Services\ReportServer\global.asax 完全
所有人 <install>\Reporting Services\ReportServer\global.asax READ_CONTROL

FILE_READ_DATA

FILE_READ_EA

FILE_READ_ATTRIBUTES
报表服务器 Windows 服务帐户 <install>\Reporting Services\ReportServer\rsreportserver.config DELETE

READ_CONTROL

SYNCHRONIZE

FILE_GENERIC_READ

FILE_GENERIC_WRITE

FILE_READ_DATA

FILE_WRITE_DATA

FILE_APPEND_DATA

FILE_READ_EA

FILE_WRITE_EA

FILE_READ_ATTRIBUTES

FILE_WRITE_ATTRIBUTES
所有人 报表服务器密钥(Instid 配置单元) 查询值

枚举子项

通知

读取控制
终端服务用户 报表服务器密钥(Instid 配置单元) 查询值

设置值

创建子项

枚举子项

通知

删除

读取控制
超级用户 报表服务器密钥(Instid 配置单元) 查询值

设置值

创建子项

枚举子项

通知

删除

读取控制

1这是 WMI 提供程序命名空间。

与非寻常磁盘位置相关的文件系统权限

当安装 tempdb 或用户数据库时,默认的安装位置驱动器为 systemdrive,通常是驱动器 C。

非默认驱动器

当安装到不是默认驱动器的本地驱动器时,Per-service SID 必须对文件位置具有访问权限。 SQL Server安装程序将预配所需的访问权限。

网络共享

当数据库安装到网络共享时,服务帐户必须对用户数据库和 tempdb 数据库的文件位置具有访问权限。 SQL Server安装程序无法预配对网络共享的访问权限。 用户必须为服务帐户设置对 tempdb 位置的访问权限,然后才能运行安装程序。 用户必须设置对用户数据库位置的访问权限,然后才能创建数据库。

注意

虚拟帐户无法通过身份验证,因而无法访问远程位置。 所有虚拟帐户均使用计算机帐户的权限。 以 <domain_name><computer_name>\$ 格式设置计算机帐户。

查看其他注意事项

下表显示了 SQL Server 服务提供其他功能时所需的权限。

服务/应用程序 功能 必需的权限
SQL Server (MSSQLSERVER) 使用 xp_sendmail 写入邮件槽。 网络写入权限。
SQL Server (MSSQLSERVER) 运行用户的而不是 SQL Server 管理员的 xp_cmdshell。 充当操作系统的一部分以及替换进程级别标记。
SQL Server 代理 (MSSQLSERVER) 使用自动重新启动功能。 必须是本地 Administrators 组的成员。
数据库引擎 优化顾问 优化数据库以获得最佳查询性能。 第一次使用时,拥有系统管理员权限的用户必须初始化该应用程序。 初始化后,dbo 用户可使用 数据库引擎 优化顾问仅优化他们拥有的那些表。 有关详细信息,请查看 SQL Server 联机丛书中的“在第一次使用时初始化 数据库引擎 优化顾问”。

重要

在升级SQL Server之前,请为 SQL Server 代理 启用 Windows 身份验证,并验证所需的默认配置:SQL Server 代理 服务帐户是否是 SQL Serverysadmin 组的成员。

注册表权限

在 HKLM\Software\Microsoft\Microsoft SQL Server\<Instance_ID> 下为识别实例的组件创建注册表配置单元。 例如:

  • HKLM\Software\Microsoft\Microsoft SQL Server\MSSQL12.MyInstance

  • HKLM\Software\Microsoft\Microsoft SQL Server\MSASSQL12.MyInstance

  • HKLM\Software\Microsoft\Microsoft SQL Server\MSSQL.120

注册表还维护实例 ID 到实例名的映射。 实例 ID 到实例名的映射按如下方式维护:

  • [HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\Instance Names\SQL] "InstanceName"="MSSQL12"

  • [HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\Instance Names\OLAP] "InstanceName"="MSASSQL12"

  • [HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\Instance Names\RS] "InstanceName"="MSRSSQL12"

WMI

Windows Management Instrumentation (WMI) 必须能够连接到 数据库引擎。 为了支持这一点,需在中预配 Windows WMI 提供程序 ( NT SERVICE\winmgmt 数据库引擎) 的 per-service SID。

SQL WMI 提供程序需要以下权限:

  • msdb 数据库的 db_ddladmindb_owner 固定服务器角色中的成员资格。

  • 服务器中的CREATE DDL EVENT NOTIFICATION 权限。

  • 中的 CREATE TRACE EVENT NOTIFICATION 数据库引擎权限。

  • VIEW ANY DATABASE 服务器级别权限。

    SQL Server 安装程序会创建一个 SQL WMI 命名空间,并向 SQL Server 代理服务 SID 授予读取权限。

命名管道

在所有安装中,SQL Server 安装程序都通过共享内存协议(一种本地命名管道)提供针对 SQL Server 数据库引擎 的访问权限。

设置

此部分介绍如何在各种 SQL Server 组件内设置帐户。

数据库引擎设置

以下帐户将作为登录名添加到 SQL Server 数据库引擎中。

Windows 主体

在安装过程中,SQL Server 安装程序要求至少将一个用户帐户命名为固定服务器角色 sysadmin 的成员。

sa 帐户

sa 帐户始终作为 数据库引擎 登录名存在,它是 sysadmin 固定服务器角色的成员。 如果仅使用 Windows 身份验证 (安装数据库引擎,即) 未启用SQL Server身份验证,则 sa 登录名仍然存在,但已禁用。 有关启用 sa 帐户的信息,请参阅 更改服务器身份验证模式

SQL Server Per-service SID 登录名和特权

SQL Server服务的按服务 SID 预配为数据库引擎登录名。 Per-service SID 登录名是 sysadmin 固定服务器角色的成员。

SQL Server 代理程序登录名和特权

SQL Server 代理服务的 Per-service SID 预配为一个 数据库引擎 登录名。 Per-service SID 登录名是 sysadmin 固定服务器角色的成员。

AlwaysOn 可用性组 和 SQL 故障转移群集实例和特权

将数据库引擎安装为Always On可用性组或 SQL 故障转移群集实例 (SQL FCI) 时,将在数据库引擎中预配 LOCAL SYSTEMLOCAL SYSTEM 登录名被授予ALWAYS ON可用性组) ALTER ANY AVAILABILITY GROUP 权限 (,SQL FCI) 的 VIEW SERVER STATE 权限 (。

SQL 编写器和特权

SQL Server VSS 编写器服务的 Per-service SID 预配为一个 数据库引擎 登录名。 Per-service SID 登录名是 sysadmin 固定服务器角色的成员。

SQL WMI 和特权

SQL Server安装程序将 NT SERVICE\Winmgmt 帐户预配为数据库引擎登录名,并将其添加到 sysadmin 固定服务器角色。

SSRS 预配

在安装过程中指定的帐户将设置为 RSExecRole 数据库角色的成员。 有关详细信息,请参阅配置报表服务器服务帐户(SSRS 配置管理器)

SSAS 设置

SSAS 服务帐户要求各不相同,具体取决于服务器的部署方式。 如果要安装 PowerPivot for SharePoint,SQL Server安装程序要求将 Analysis Services 服务配置为在域帐户下运行。 为了支持 SharePoint 中内置的托管帐户功能,需要域帐户。 因此,SQL Server安装程序不会为 PowerPivot for SharePoint 安装提供默认服务帐户,例如虚拟帐户。 有关设置 PowerPivot for SharePoint 的详细信息,请参阅配置 PowerPivot 服务帐户

对于所有其他独立 SSAS 安装,您可以将服务设置为在域帐户、内置系统帐户、托管帐户或虚拟帐户下运行。 有关帐户设置的详细信息,请参阅配置服务帐户 (Analysis Services)

对于群集安装,您必须指定一个域帐户或一个内置系统帐户。 SSAS 故障转移群集既不支持托管帐户,也不支持虚拟帐户。

所有 SSAS 安装均要求您指定 Analysis Services 实例的系统管理员。 管理员特权在 Analysis Services 的 “服务器” 角色中设置。

SSRS 预配

在安装过程中指定的帐户将在 数据库引擎 中设置为 RSExecRole 数据库角色的成员。 有关详细信息,请参阅配置报表服务器服务帐户(SSRS 配置管理器)

从早期版本升级

此部分介绍在从先前版本的 SQL Server 升级的过程中进行的更改。

  • SQL Server 2014 需要 Windows Server 2008 R2 SP1、Windows Server 2012、Windows 8.0、Windows Server 2012 R2 或 Windows 8.1。 任何在更低操作系统版本上运行的 SQL Server 先前版本在升级 SQL Server 之前,都必须升级操作系统。

  • 在将 SQL Server 2005 升级到 SQL Server 2014 期间,SQL Server 安装程序将按以下方式配置SQL Server。

    • 数据库引擎 使用 Per-service SID 的安全上下文运行。 将向 Per-service SID 授予针对 SQL Server 实例的文件夹(如 DATA)和 SQL Server 注册表项的访问权限。

    • 数据库引擎 的 Per-service SID 在 数据库引擎 中设置为 sysadmin 固定服务器角色的成员。

    • Per-service SID 将添加到本地 SQL Server Windows 组中,除非 SQL Server 是故障转移群集实例。

    • SQL Server 资源保持设置为本地 SQL Server Windows 组。

    • 服务的本地 Windows 组已从 SQLServer2005MSSQLUser$<computer_name><instance_name>$ 重命名为 SQLServerMSSQLUser$<computer_name><instance_name>$。 已迁移的数据库的文件位置将具有本地 Windows 组的访问控制项 (ACE)。 新数据库的文件位置将具有 Per-service SID 的 ACE。

  • 从 SQL Server 2008 升级期间,SQL Server安装程序将保留每个服务 SID SQL Server 2008 的 ACE。

  • 对于SQL Server故障转移群集实例,将保留为服务配置的域帐户的 ACE。

附录

本部分包含有关 SQL Server 的其他信息。

服务帐户的描述

服务帐户是用来启动 Windows 服务的帐户,如 SQL Server 数据库引擎。

可用于任何操作系统的帐户

除了前面介绍的新的 MSA虚拟帐户 之外,还可以使用以下帐户。

域用户帐户

如果服务必须与网络服务进行交互,则访问类似于文件共享的域资源;如果服务使用到运行 SQL Server 的其他计算机的链接服务器连接,可使用具有最低特权的域帐户。 许多服务器到服务器的活动只能使用域用户帐户来执行。 此帐户应由域管理员在您的环境内预先创建。

注意

如果您将应用程序配置为使用域帐户,则可以隔离应用程序的特权,但必须手动管理密码或创建自定义解决方案以管理这些密码。 许多服务器应用程序使用此策略以增强安全性,但此策略要求额外的管理和复杂性。 在这些部署中,服务管理员将在维护任务方面花费大量时间,如管理服务密码和服务主体名称 (SPN),但这些维护服务是 Kerberos 身份验证所必需的。 此外,这些维护任务可能会中断服务。

本地用户帐户

如果计算机不在域中,则建议您使用不具有 Windows 管理员权限的本地用户帐户。

本地服务帐户

Local Service 帐户是一个内置帐户,与 Users 组的成员具有相同级别的资源和对象访问权限。 如果有个别服务或进程的安全性受到威胁,则此有限访问权限有助于保护系统的安全性。 以 Local Service 帐户身份运行的服务将以一个没有凭据的 Null 会话形式访问网络资源。 请注意,SQL Server或SQL Server 代理服务不支持本地服务帐户。 不支持本地服务作为运行这些服务的帐户,因为它是共享服务,并且在本地服务下运行的任何其他服务都具有对SQL Server的系统管理员访问权限。 该帐户的实际名称为 NT AUTHORITY\LOCAL SERVICE

网络服务帐户

Network Service 帐户是一个内置帐户,比 Users 组的成员拥有更多的对资源和对象的访问权限。 以网络服务帐户身份运行的服务通过使用计算机帐户的凭据(格式为 <domain_name><computer_name>\$)访问网络资源。 该帐户的实际名称为 NT AUTHORITY\NETWORK SERVICE

本地系统帐户

Local System 是一个具有高特权的内置帐户。 它对本地系统拥有许多特权并作为网络上的计算机。 该帐户的实际名称为 NT AUTHORITY\SYSTEM

辨别识别实例的服务和不识别实例的服务

识别实例的服务与特定 SQL Server 实例相关联,并具有自己的注册表配置单元。 通过为每个组件或服务运行 SQL Server 安装程序,可安装识别实例的服务的多个副本。 不识别实例的服务由所有已安装的 SQL Server 实例共享。 它们不与特定实例相关联,仅安装一次且不能并行安装。

SQL Server 中识别实例的服务包括:

  • SQL Server

  • SQL Server 代理

    请注意,SQL Server Express 的实例和具有高级服务的 SQL Server Express 实例上已禁用 SQL Server 代理服务。

  • Analysis Services 1

  • Reporting Services

  • 全文搜索

SQL Server 中不识别实例的服务包括:

  • Integration Services

  • SQL Server Browser

  • SQL 编写器

1SharePoint 集成模式下的 Analysis Services 作为单个命名实例作为“PowerPivot”运行。 实例名称是固定不变的。 您不能指定其他名称。 您可以在每台物理服务器上安装作为 PowerPivot 运行的一个 Analysis Services 实例。

本地化的服务名称

下表列出了 Windows 的本地化版本所显示的服务名称。

语言 Local Service 的名称 Network Service 的名称 Local System 的名称 Admin Group 的名称
英语

简体中文

繁体中文

韩语

日语
NT AUTHORITY\LOCAL SERVICE NT AUTHORITY\NETWORK SERVICE NT AUTHORITY\SYSTEM BUILTIN\Administrators
德语 NT-AUTORITÄT\LOKALER DIENST NT-AUTORITÄT\NETZWERKDIENST NT-AUTORITÄT\SYSTEM VORDEFINIERT\Administratoren
法语 AUTORITE NT\SERVICE LOCAL AUTORITE NT\SERVICE RÉAU AUTORITE NT\SYSTEM BUILTIN\Administrators
意大利语 NT AUTHORITY\SERVIZIO LOCALE NT AUTHORITY\SERVIZIO DI RETE NT AUTHORITY\SYSTEM BUILTIN\Administrators
西班牙语 NT AUTHORITY\SERVICIO LOC NT AUTHORITY\SERVICIO DE RED NT AUTHORITY\SYSTEM BUILTIN\Administradores
俄语 NT AUTHORITY\LOCAL SERVICE NT AUTHORITY\NETWORK SERVICE NT AUTHORITY\SYSTEM BUILTIN\Администраторы

安装 SQL Server 的安全注意事项

SQL Server 的默认实例和命名实例的文件位置

安装 Master Data Services