配置 Windows 服务帐户和权限
SQL Server 2012
根据您决定安装的组件,SQL Server 安装程序将安装以下服务:
-
SQL Server Database Services - 用于 SQL Server 关系数据库引擎的服务。 可执行文件为 <MSSQLPATH>\MSSQL\Binn\sqlservr.exe。
-
SQL Server 代理 - 执行作业、监视 SQL Server、激发警报以及允许自动执行某些管理任务。 SQL Server 代理服务在 SQL Server Express 的实例上存在,但处于禁用状态。 可执行文件为 <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>\110\DTS\Binn\MsDtsSrvr.exe
-
SQL Server Browser - 向客户端计算机提供 SQL Server 连接信息的名称解析服务。 可执行文件的路径为 c:\Program Files (x86)\Microsoft SQL Server\90\Shared\sqlbrowser.exe
-
全文搜索 - 对结构化和半结构化数据的内容和属性快速创建全文索引,从而为 SQL Server 提供文档筛选和断字功能。
-
SQL 编写器 - 允许备份和还原应用程序在 Volume Shadow Copy Service (VSS) 框架中运行。
-
SQL Server 分布式重播控制器 - 跨多个分布式重播客户端计算机提供跟踪重播业务流程。
-
SQL Server 分布式重播客户端 - 与分布式重播控制器一起来模拟针对 SQL Server 数据库引擎实例的并发工作负荷的一台或多台分布式重播客户端计算机。
用于启动和运行 SQL Server 的启动帐户可以是域用户帐户、本地用户帐户、托管服务帐户、虚拟帐户或内置系统帐户。 若要启动和运行 SQL Server 中的每项服务,这些服务都必须有一个在安装过程中配置的启动帐户。
此部分介绍可配置为启动 SQL Server 服务的帐户、SQL Server 安装程序使用的默认值、Per-service SID 的概念、启动选项以及配置防火墙。
默认服务帐户
下表列出了安装程序在安装所有组件时使用的默认服务帐户。 列出的默认帐户是建议使用的帐户,但特殊注明的除外。
独立服务器或域控制器
组件 |
Windows Vista 和Windows Server 2008 |
Windows 7 和 Windows Server 2008 R2 |
---|---|---|
数据库引擎 |
虚拟帐户 * |
|
SQL Server 代理 |
虚拟帐户 * |
|
SSAS |
虚拟帐户 * |
|
SSIS |
虚拟帐户 * |
|
SSRS |
虚拟帐户 * |
|
SQL Server 分布式重播控制器 |
虚拟帐户 * |
|
SQL Server 分布式重播客户端 |
虚拟帐户 * |
|
FD 启动器(全文搜索) |
||
SQL Server Browser |
||
SQL Server VSS 编写器 |
* 当需要 SQL Server 计算机外部的资源时,Microsoft 建议使用配置了必需的最小特权的托管服务帐户 (MSA)。
SQL Server 故障转移群集实例
组件 |
Windows Server 2008 |
Windows Server 2008 R2 |
---|---|---|
数据库引擎 |
无。 提供域用户帐户。 |
提供域用户帐户。 |
SQL Server Agent |
无。 提供域用户帐户。 |
提供域用户帐户。 |
SSAS |
无。 提供域用户帐户。 |
提供域用户帐户。 |
SSIS |
||
SSRS |
||
FD 启动器(全文搜索) |
||
SQL Server Browser |
||
SQL Server VSS 编写器 |
更改帐户属性
重要提示 |
---|
|
可用于 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 服务。
-
虚拟帐户
Windows Server 2008 R2 和 Windows 7 中的虚拟帐户是“托管的本地帐户”,此类帐户提供以下功能以简化服务管理。 虚拟帐户是自动管理的,并且虚拟帐户可以访问域环境中的网络。 如果在 Windows Server 2008 R2 或 Windows 7 上安装 SQL Server 时对服务帐户使用默认值,则将使用将实例名称用作服务名称的虚拟帐户,格式为 NT SERVICE\<SERVICENAME>。 以虚拟帐户身份运行的服务通过使用计算机帐户的凭据(格式为 <domain_name>\<computer_name>$)访问网络资源。 当指定一个虚拟帐户以启动 SQL Server 时,应将密码留空。
注意 虚拟帐户不能用于 SQL Server 故障转移群集实例,因为虚拟帐户在群集的每个节点不会有相同 SID。
下表列出了虚拟帐户名称的示例。
服务
虚拟帐户名称
数据库引擎服务的默认实例
NT SERVICE\MSSQLSERVER
名为 PAYROLL 的数据库引擎服务的命名实例
NT SERVICE\MSSQL$PAYROLL
SQL Server 代理服务,位于以下默认实例上:SQL Server
NT SERVICE\SQLSERVERAGENT
名为 PAYROLL 的 SQL Server 实例上的SQL Server 代理服务
NT SERVICE\SQLAGENT$PAYROLL
有关托管服务帐户和虚拟帐户的详细信息,请参阅 Service Accounts Step-by-Step Guide(服务帐户分步指南)的 Managed service account and virtual account concepts(托管服务和虚拟帐户概念)部分以及Managed Service Accounts Frequently Asked Questions (FAQ)(托管服务帐户常见问题解答 (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 分布式重播控制器 |
DRU_CTLR、CTLRSVCACCOUNT、CTLRSVCPASSWORD、CTLRSTARTUPTYPE、CTLRUSERS |
SQL Server 分布式重播客户端 |
DRU_CLT、CLTSVCACCOUNT、CLTSVCPASSWORD、CLTSTARTUPTYPE、CLTCTLRNAME、CLTWORKINGDIR、CLTRESULTDIR |
1有关无人参与安装的详细信息和示例语法,请参阅从命令提示符安装 SQL Server 2012。
2在 SQL Server Express 实例和 SQL Server Express with Advanced Services 实例上,SQL Server 代理服务已禁用。
防火墙端口
在大多数情况下,首次安装时,可以通过与 SQL Server 安装在相同计算机上的 SQL Server Management Studio 等此类工具连接数据库引擎。 SQL Server 安装程序不会在 Windows 防火墙中打开端口。 在将数据库引擎配置为侦听 TCP 端口,并且在 Windows 防火墙中打开适当的端口进行连接之前,将无法从其他计算机建立连接。 有关详细信息,请参阅配置 Windows 防火墙以允许 SQL Server 访问。
此部分介绍 SQL Server 安装程序为 SQL Server 服务的 Per-service SID 配置的权限。
服务配置和访问控制
SQL Server 2012 会为它的每项服务启用 Per-service SID,以提供深层服务隔离与防御。 Per-service SID 从服务名称派生得到,对该服务是唯一的。 例如,数据库引擎服务的服务 SID 名称可以是 NT Service\MSSQL$<InstanceName>。 通过服务隔离,可直接访问特定的对象,而无需运行高特权帐户,也不会削弱为对象提供的安全保护水平。 通过使用包含服务 SID 的访问控制项,SQL Server 服务可限制对其资源的访问。
注意 |
---|
在 Windows 7 和 Windows Server 2008R2 上,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 组的权限将仍可用且没有任何更新,因为 Per-service 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 数据库引擎: (所有权限都将授予 Per-service SID。 默认实例:NT SERVICE\MSSQLSERVER。 命名实例:NT SERVICE\MSSQL$InstanceName。) |
以服务身份登录(SeServiceLogonRight) 替换进程级别标记(SeAssignPrimaryTokenPrivilege) 跳过遍历检查(SeChangeNotifyPrivilege) 调整进程的内存配额(SeIncreaseQuotaPrivilege) 启动 SQL 编写器的权限 读取事件日志服务的权限 读取远程过程调用服务的权限 |
SQL Server 代理: 1 (所有权限都将授予 Per-service 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) |
SSRS: (所有权限都将授予 Per-service SID。 默认实例:NT SERVICE\ReportServer。 命名实例:NT SERVICE\$InstanceName。) |
以服务身份登录(SeServiceLogonRight) |
SSIS: (所有权限都将授予 Per-service SID。 默认实例和命名实例:NT SERVICE\MsDtsServer110。 Integration Services 没有针对命名实例的单独进程。) |
以服务身份登录(SeServiceLogonRight) 应用程序事件日志的写入权限。 跳过遍历检查(SeChangeNotifyPrivilege) 身份验证后模拟客户端(SeImpersonatePrivilege) |
全文搜索: (所有权限都将授予 Per-service SID。 默认实例:NT Service\MSSQLFDLauncher。 命名实例:NT Service\ MSSQLFDLauncher$InstanceName。) |
以服务身份登录(SeServiceLogonRight) 调整进程的内存配额(SeIncreaseQuotaPrivilege) 跳过遍历检查(SeChangeNotifyPrivilege) |
SQL Server Browser: (所有权限都授予本地 Windows 组。 默认实例或命名实例:SQLServer2005SQLBrowserUser$ComputerName。 SQL Server Browser 没有针对命名实例的单独进程。) |
以服务身份登录(SeServiceLogonRight) |
SQL Server VSS 编写器: (所有权限都将授予 Per-service SID。 默认实例或命名实例:NT Service\SQLWriter。 SQL Server VSS 编写器没有针对命名实例的单独进程。) |
SQLWriter 服务在具有所需的所有权限的 LOCAL SYSTEM 帐户下运行。 SQL Server 安装程序不检查此服务或为其授予权限。 |
SQL Server 分布式重播控制器: |
以服务身份登录(SeServiceLogonRight) |
SQL Server 分布式重播客户端: |
以服务身份登录(SeServiceLogonRight) |
1 SQL Server 代理服务在 SQL Server Express 的实例上处于禁用状态。
授予 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 |
完全控制 |
|
110\shared |
读取和执行 |
|
Instid\MSSQL\Template Data(仅限 SQL Server Express) |
读取 |
SQLServerAgent1 |
Instid\MSSQL\binn |
完全控制 |
|
Instid\MSSQL\binn |
完全控制 |
|
Instid\MSSQL\Log |
读取、写入、删除和执行 |
|
110\com |
读取和执行 |
|
110\shared |
读取和执行 |
|
110\shared\Errordumps |
读取和写入 |
ServerName\EventLog |
完全控制 |
|
FTS |
Instid\MSSQL\FTData |
完全控制 |
|
Instid\MSSQL\FTRef |
读取和执行 |
|
110\shared |
读取和执行 |
|
110\shared\Errordumps |
读取和写入 |
|
Instid\MSSQL\Install |
读取和执行 |
Instid\MSSQL\jobs |
读取和写入 |
|
MSSQLServerOLAPservice |
110\shared\ASConfig |
完全控制 |
|
Instid\OLAP |
读取和执行 |
|
Instid\Olap\Data |
完全控制 |
|
Instid\Olap\Log |
读取和写入 |
|
Instid\OLAP\Backup |
读取和写入 |
|
Instid\OLAP\Temp |
读取和写入 |
|
110\shared\Errordumps |
读取和写入 |
SQLServerReportServerUser |
Instid\Reporting Services\Log Files |
读取、写入、删除 |
|
Instid\Reporting Services\ReportServer |
读取和执行 |
|
Instid\Reportingservices\Reportserver\global.asax |
完全控制 |
|
Instid\Reportingservices\Reportserver\Reportserver.config |
读取 |
|
Instid\Reporting Services\reportManager |
读取和执行 |
|
Instid\Reporting Services\RSTempfiles |
读取、写入、执行、删除 |
|
110\shared |
读取和执行 |
|
110\shared\Errordumps |
读取和写入 |
MSDTSServer100 |
110\dts\binn\MsDtsSrvr.ini.xml |
读取 |
|
110\dts\binn |
读取和执行 |
|
110\shared |
读取和执行 |
|
110\shared\Errordumps |
读取和写入 |
SQL Server Browser |
110\shared\ASConfig |
读取 |
|
110\shared |
读取和执行 |
|
110\shared\Errordumps |
读取和写入 |
SQLWriter |
不适用(以 Local System 身份运行) |
|
用户 |
Instid\MSSQL\binn |
读取和执行 |
|
Instid\Reporting Services\ReportServer |
读取、执行和列出文件夹内容 |
|
Instid\Reportingservices\Reportserver\global.asax |
读取 |
|
Instid\Reporting Services\ReportManager |
读取和执行 |
|
Instid\Reporting Services\ReportManager\pages |
读取 |
|
Instid\Reporting Services\ReportManager\Styles |
读取 |
|
110\dts |
读取和执行 |
|
110\tools |
读取和执行 |
100\tools |
读取和执行 |
|
|
90\tools |
读取和执行 |
|
80\tools |
读取和执行 |
|
110\sdk |
读取 |
|
Microsoft SQL Server\110\Setup Bootstrap |
读取和执行 |
SQL Server 分布式重播控制器 |
<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 分布式重播客户端 |
<ToolsDir>\DReplayClient\Log\ |
读取、执行和列出文件夹内容 |
<ToolsDir>\DReplayClient\DReplayClient.exe |
读取、执行和列出文件夹内容 |
|
<ToolsDir>\DReplayClient\resources\ |
读取、执行和列出文件夹内容 |
|
<ToolsDir>\DReplayClient\(所有 dll) |
读取、执行和列出文件夹内容 |
|
<ToolsDir>\DReplayClient\DReplayClient.config |
读取、执行和列出文件夹内容 |
|
<ToolsDir>\DReplayClient\IRTemplate.tdf |
读取、执行和列出文件夹内容 |
|
<ToolsDir>\DReplayClient\IRDefinition.xml |
读取、执行和列出文件夹内容 |
1在 SQL Server Express 实例和 SQL Server Express with Advanced Services 实例上,SQL Server 代理服务已禁用。
当数据库文件存储在用户定义的位置时,您必须授予每个服务 SID 访问该位置的权限。 有关将文件系统权限授予每个服务 SID 的详细信息,请参阅配置数据库引擎访问的文件系统权限。
授予其他 Windows 用户帐户或组的文件系统权限
可能还必须向内置帐户或其他 SQL Server 服务帐户授予某些访问控制权限。 下表列出了 SQL Server 安装程序设置的其他 ACL。
请求组件 |
帐户 |
资源 |
权限 |
---|---|---|---|
MSSQLServer |
性能日志用户 |
Instid\MSSQL\binn |
列出文件夹内容 |
|
性能监视器用户 |
Instid\MSSQL\binn |
列出文件夹内容 |
|
性能日志用户、性能监视器用户 |
\WINNT\system32\sqlctr110.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 |
<报表服务器 Web 服务帐户> |
<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 |
|
报表管理器应用程序池标识、ASP.NET 帐户、Everyone |
<install>\Reporting Services\ReportManager,<install>\Reporting Services\ReportManager\Pages\*.*,<install>\Reporting Services\ReportManager\Styles\*.*,<install>\Reporting Services\ReportManager\webctrl_client\1_0\*.* |
读取 |
|
报表管理器应用程序池标识 |
<install>\Reporting Services\ReportManager\Pages\*.* |
读取 |
|
<报表服务器 Web 服务帐户> |
<install>\Reporting Services\ReportServer |
读取 |
|
<报表服务器 Web 服务帐户> |
<install>\Reporting Services\ReportServer\global.asax |
完全 |
|
Everyone |
<install>\Reporting Services\ReportServer\global.asax |
READ_CONTROL FILE_READ_DATA FILE_READ_EA FILE_READ_ATTRIBUTES |
|
Network Service |
<install>\Reporting Services\ReportServer\ReportService.asmx |
完全 |
|
Everyone |
<install>\Reporting Services\ReportServer\ReportService.asmx |
READ_CONTROL SYNCHRONIZE FILE_GENERIC_READ FILE_GENERIC_EXECUTE FILE_READ_DATA FILE_READ_EA FILE_EXECUTE FILE_READ_ATTRIBUTES |
|
ReportServer 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 |
|
Everyone |
报表服务器密钥(Instid 配置单元) |
查询值 枚举子项 通知 读取控制 |
|
终端服务用户 |
报表服务器密钥(Instid 配置单元) |
查询值 设置值 创建子项 枚举子项 通知 删除 读取控制 |
|
超级用户 |
报表服务器密钥(Instid 配置单元) |
查询值 设置值 创建子项 枚举子项 通知 删除 读取控制 |
1这是 WMI 提供程序命名空间。
与非寻常磁盘位置相关的文件系统权限
安装的默认驱动器为 systemdrive,通常为驱动器 C。 当安装 tempdb 或用户数据库时
非默认的驱动器
当安装到不是默认驱动器的本地驱动器时,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 Agent (MSSQLSERVER) |
使用自动重新启动功能。 |
必须是本地 Administrators 组的成员。 |
数据库引擎优化顾问 |
优化数据库以获得最佳查询性能。 |
第一次使用时,拥有系统管理员权限的用户必须初始化该应用程序。初始化后,dbo 用户可使用数据库引擎优化顾问仅优化他们拥有的那些表。 有关详细信息,请参阅 SQL Server 联机丛书中的“在第一次使用时初始化数据库引擎优化顾问”。 |
重要提示 |
---|
升级到 SQL Server 之前,请先为 SQL Server 代理启用 Windows 身份验证,并验证所需的默认配置:SQL Server 代理的服务帐户是否为 SQL Server sysadmin 组的成员。 |
注册表权限
将在 HKLM\Software\Microsoft\Microsoft SQL Server\<Instance_ID> 下为识别实例的组件创建注册表配置单元。 例如:
-
HKLM\Software\Microsoft\Microsoft SQL Server\MSSQL11.MyInstance
-
HKLM\Software\Microsoft\Microsoft SQL Server\MSASSQL11.MyInstance
-
HKLM\Software\Microsoft\Microsoft SQL Server\MSSQL.110
注册表还维护实例 ID 到实例名的映射。 实例 ID 到实例名的映射按如下方式维护:
-
[HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\Instance Names\SQL] "InstanceName"="MSSQL11"
-
[HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\Instance Names\OLAP] "InstanceName"="MSASSQL11"
-
[HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\Instance Names\RS] "InstanceName"="MSRSSQL11"
WMI
Windows Management Instrumentation (WMI) 必须能够连接到数据库引擎。 为了支持这一点,应在数据库引擎中提供 Windows WMI 提供程序 (NT SERVICE\winmgmt) 的 Per-service SID。
SQL WMI 提供程序需要以下权限:
-
msdb 数据库的 db_ddladmin 或 db_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 服务的 Per-service SID 设置为一个数据库引擎登录名。 Per-service SID 登录名是 sysadmin 固定服务器角色的成员。
SQL Server 代理程序登录名和特权
SQL Server 代理服务的 Per-service SID 设置为一个数据库引擎登录名。 Per-service SID 登录名是 sysadmin固定服务器角色的成员。
AlwaysOn 可用性组 和 SQL 故障转移群集实例和特权
当将数据库引擎安装为 AlwaysOn 可用性组 或 SQL 故障转移群集实例 (SQL FCI) 时,将在数据库引擎中设置LOCAL SYSTEM。 LOCAL SYSTEM 登录名被授予 ALTER ANY AVAILABILITY GROUP 权限(对于 AlwaysOn 可用性组)以及 VIEW SERVER STATE 权限(对于 SQL FCI)。
SQL 编写器和特权
SQL Server VSS 编写器服务的 Per-service SID 设置为一个数据库引擎登录名。 Per-service SID 登录名是sysadmin 固定服务器角色的成员。
SQL WMI 和特权
SQL Server 安装程序将 NT SERVICE\Winmgmt 帐户设置为数据库引擎登录名,并将其添加到 sysadmin 固定服务器角色中。
SSRS 设置
在安装过程中指定的帐户将设置为 RSExecRole 数据库角色的成员。 有关详细信息,请参阅配置报表服务器服务帐户。
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 数据库角色的成员。 有关详细信息,请参阅配置报表服务器服务帐户。
此部分介绍在从先前版本的 SQL Server 升级的过程中进行的更改。
-
SQL Server 2012 要求 Windows Vista、Windows 7、Windows Server 2008 或 Windows Server 2008 R2。 任何在 Windows XP 或 Windows Server 2003 上运行的 SQL Server 先前版本在升级 SQL Server 之前,都必须升级操作系统。
-
在将 SQL Server 2005 升级到 SQL Server 2012 的过程中,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 安装程序将保留 SQL Server 2008 Per-service SID 的 ACE。
-
对于 SQL Server 故障转移群集实例,将保留为服务配置的域帐户的 ACE。
本节包含有关 SQL Server 的其他信息。
服务帐户的描述
服务帐户是用来启动 Windows 服务的帐户,如 SQL Server 数据库引擎。
可用于任何操作系统的帐户
除了前面介绍的新的 MSA 和虚拟帐户之外,还可以使用以下帐户。
Domain User 帐户
如果服务必须与网络服务进行交互,则访问类似于文件共享的域资源;如果服务使用到运行 SQL Server 的其他计算机的链接服务器连接,则可以使用具有最低特权的域帐户。 许多服务器到服务器的活动只能使用域用户帐户来执行。 此帐户应由域管理员在您的环境内预先创建。
注意 |
---|
如果您将应用程序配置为使用域帐户,则可以隔离应用程序的特权,但必须手动管理密码或创建自定义解决方案以管理这些密码。 许多服务器应用程序使用此策略以增强安全性,但此策略要求额外的管理和复杂性。 在这些部署中,服务管理员将在维护任务方面花费大量时间,如管理服务密码和服务主体名称 (SPN),但这些维护服务是 Kerberos 身份验证所必需的。 此外,这些维护任务可能会中断服务。 |
Local User 帐户
如果计算机不在域中,则建议您使用不具有 Windows 管理员权限的本地用户帐户。
Local Service 帐户
Local Service 帐户是一个内置帐户,与 Users 组的成员具有相同级别的资源和对象访问权限。 如果有个别服务或进程的安全性受到威胁,则此有限访问权限有助于保护系统的安全性。 以 Local Service 帐户身份运行的服务将以一个没有凭据的 Null 会话形式访问网络资源。 请注意,SQL Server 或 SQL Server 代理服务不支持 Local Service 帐户。 不支持将 Local Service 作为运行这些服务的帐户,因为该服务是一个共享服务,并且任何在 Local Service 下运行的其他服务都对 SQL Server 具有系统管理员访问权限。 该帐户的实际名称为 NT AUTHORITY\LOCAL SERVICE。
Network Service 帐户
Network Service 帐户是一个内置帐户,比 Users 组的成员拥有更多的对资源和对象的访问权限。 以 Network Service 帐户身份运行的服务将使用计算机帐户的凭据以 <domain_name>\<computer_name>$ 格式访问网络资源。 该帐户的实际名称为 NT AUTHORITY\NETWORK SERVICE。
Local System 帐户
Local System 是一个具有高特权的内置帐户。 它对本地系统拥有许多特权并作为网络上的计算机。 该帐户的实际名称为 NT AUTHORITY\SYSTEM。
辨别识别实例的服务和不识别实例的服务
识别实例的服务与特定 SQL Server 实例相关联,并具有自己的注册表配置单元。 通过为每个组件或服务运行 SQL Server 安装程序,可以安装识别实例的服务的多个副本。 不识别实例的服务由所有已安装的 SQL Server 实例共享。 它们不与特定实例相关联,仅安装一次且不能并行安装。
SQL Server 中识别实例的服务包括:
-
SQL Server
-
SQL Server Agent
请注意,在 SQL Server Express 实例和 SQL Server Express with Advanced Services 实例上 SQL Server Agent 服务已禁用。
-
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ÉSEAU |
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\Администраторы |