Skip to main content
TechNet
Configure Windows Service Accounts and Permissions
 

Updated: June 23, 2016

THIS TOPIC APPLIES TO: yesSQL Server (starting with 2016) noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Each service in SQL Server represents a process or a set of processes to manage authentication of SQL Server operations with Windows. This topic describes the default configuration of services in this release of SQL Server, and configuration options for SQL Server services that you can set during and after SQL Server installation. This topic helps advanced users understand the details of the service accounts.

Most services and their properties can be configured by using SQL Server Configuration Manager. Here are the paths to the last four versions when Windows in installed on the C drive.

SQL Server 2016C:\Windows\SysWOW64\SQLServerManager13.msc
SQL Server 2014C:\Windows\SysWOW64\SQLServerManager12.msc
SQL Server 2012C:\Windows\SysWOW64\SQLServerManager11.msc
SQL Server 2008C:\Windows\SysWOW64\SQLServerManager10.msc

Depending on the components that you decide to install, SQL Server Setup installs the following services:

  • SQL Server Database Services - The service for the SQL Server relational Database Engine. The executable file is <MSSQLPATH>\MSSQL\Binn\sqlservr.exe.

  • SQL Server Agent - Executes jobs, monitors SQL Server, fires alerts, and enables automation of some administrative tasks. The SQL Server Agent service is present but disabled on instances of SQL Server Express. The executable file is <MSSQLPATH>\MSSQL\Binn\sqlagent.exe.

  • Analysis Services - Provides online analytical processing (OLAP) and data mining functionality for business intelligence applications. The executable file is <MSSQLPATH>\OLAP\Bin\msmdsrv.exe.

  • Reporting Services - Manages, executes, creates, schedules, and delivers reports. The executable file is <MSSQLPATH>\Reporting Services\ReportServer\Bin\ReportingServicesService.exe.

  • Integration Services - Provides management support for Integration Services package storage and execution. The executable path is <MSSQLPATH>\130\DTS\Binn\MsDtsSrvr.exe

  • SQL Server Browser - The name resolution service that provides SQL Server connection information for client computers. The executable path is c:\Program Files (x86)\Microsoft SQL Server\90\Shared\sqlbrowser.exe

  • Full-text search - Quickly creates full-text indexes on content and properties of structured and semistructured data to provide document filtering and word-breaking for SQL Server.

  • SQL Writer - Allows backup and restore applications to operate in the Volume Shadow Copy Service (VSS) framework.

  • SQL Server Distributed Replay Controller - Provides trace replay orchestration across multiple Distributed Replay client computers.

  • SQL Server Distributed Replay Client - One or more Distributed Replay client computers that work together with a Distributed Replay controller to simulate concurrent workloads against an instance of the SQL Server Database Engine.

  • SQL Server Trusted Launchpad - A trusted service that hosts external executables that are provided by Microsoft, such as the R runtime installed as part of R Services (In-database). Satellite processes can be launched by the Launchpad process but will be resource governed based on the configuration of the individual instance. The Launchpad service runs under its own user account, and each satellite process for a specific, registered runtime will inherit the user account of the Launchpad. Satellite processes are created and destroyed on demand during execution time.

Startup accounts used to start and run SQL Server can be domain user accounts, local user accounts, managed service accounts, virtual accounts, or built-in system accounts. To start and run, each service in SQL Server must have a startup account configured during installation.

This section describes the accounts that can be configured to start SQL Server services, the default values used by SQL Server Setup, the concept of per-service SID’s, the startup options, and configuring the firewall.

  • Default Service Accounts

  • Automatic Startup

  • Configuring Service StartupType

  • Firewall Port

Default Service Accounts

The following table lists the default service accounts used by setup when installing all components. The default accounts listed are the recommended accounts, except as noted.

Stand-alone Server or Domain Controller

ComponentWindows Server 2008Windows 7 and Windows Server 2008 R2 and higher
Database EngineNETWORK SERVICEVirtual Account*
SQL Server AgentNETWORK SERVICEVirtual Account*
SSASNETWORK SERVICEVirtual Account*
SSISNETWORK SERVICEVirtual Account*
SSRSNETWORK SERVICEVirtual Account*
SQL Server Distributed Replay ControllerNETWORK SERVICEVirtual Account*
SQL Server Distributed Replay ClientNETWORK SERVICEVirtual Account*
FD Launcher (Full-text Search)LOCAL SERVICEVirtual Account
SQL Server BrowserLOCAL SERVICELOCAL SERVICE
SQL Server VSS WriterLOCAL SYSTEMLOCAL SYSTEM
Advanced Analytics ExtensionsNTSERVICE\MSSQLLaunchpadNTSERVICE\MSSQLLaunchpad

*When resources external to the SQL Server computer are needed, Microsoft recommends using a Managed Service Account (MSA), configured with the minimum privileges necessary.

SQL Server Failover Cluster Instance

ComponentWindows Server 2008Windows Server 2008 R2
Database EngineNone. Provide a domain user account.Provide a domain user account.
SQL Server AgentNone. Provide a domain user account.Provide a domain user account.
SSASNone. Provide a domain user account.Provide a domain user account.
SSISNETWORK SERVICEVirtual Account
SSRSNETWORK SERVICEVirtual Account
FD Launcher (Full-text Search)LOCAL SERVICEVirtual Account
SQL Server BrowserLOCAL SERVICELOCAL SERVICE
SQL Server VSS WriterLOCAL SYSTEMLOCAL SYSTEM

Changing Account Properties

System_CAPS_ICON_important.jpg Important

  • Always use SQL Server tools such as SQL Server Configuration Manager to change the account used by the SQL Server Database Engine or SQL Server Agent services, or to change the password for the account. In addition to changing the account name, SQL Server Configuration Manager performs additional configuration such as updating the Windows local security store which protects the service master key for the Database Engine. Other tools such as the Windows Services Control Manager can change the account name but do not change all the required settings.
  • For Analysis Services instances that you deploy in a SharePoint farm, always use SharePoint Central Administration to change the server accounts for Power Pivot service applications and the Analysis Services service. Associated settings and permissions are updated to use the new account information when you use Central Administration.
  • To change Reporting Services options, use the Reporting Services Configuration Tool.

Managed Service Accounts, Group Managed Service Accounts, and Virtual Accounts

Managed service accounts, group managed service accounts, and virtual accounts are designed to provide crucial applications such as SQL Server with the isolation of their own accounts, while eliminating the need for an administrator to manually administer the Service Principal Name (SPN) and credentials for these accounts. These make long term management of service account users, passwords and SPNs much easier.

  •  Managed Service Accounts

    A Managed Service Account (MSA) is a type of domain account created and managed by the domain controller. It is assigned to a single member computer for use running a service. The password is managed automatically by the domain controller. You cannot use a MSA to log into a computer, but a computer can use a MSA to start a Windows service. An MSA has the ability to register Service Principal Name (SPN) with the Active Directory. A MSA is named with a $ suffix, for example DOMAIN\ACCOUNTNAME$. When specifying a MSA, leave the password blank. Because a MSA is assigned to a single computer, it cannot be used on different nodes of a Windows cluster.

    System_CAPS_ICON_note.jpg Note


    The MSA must be created in the Active Directory by the domain administrator before SQL Server setup can use it for SQL Server services.

  •  Group Managed Service Accounts

    A Group Managed Service Account is an MSA for multiple servers. Windows manages a service account for services running on a group of servers. Active Directory automatically updates the group managed service account password without restarting services. You can configure SQL Server services to use a group managed service account principal. SQL Server 2016 supports group managed service accounts on Windows Server 2012 R2 and later for standalone instances, failover cluster instances, and availability groups.

    To use a group managed service account for SQL Server 2016 or later, the operating system must be Windows Server 2012 R2 or later. Servers with Windows Server 2012 R2 require KB 2998082 applied so that the services can log in without disruption immediately after a password change.

    For more information, see Group Manged Service Accounts

    System_CAPS_ICON_note.jpg Note


    The group managed service account must be created in the Active Directory by the domain administrator before SQL Server setup can use it for SQL Server services.

  • Virtual Accounts

    Virtual accounts in Windows Server 2008 R2 and Windows 7 are managed local accounts that provide the following features to simplify service administration. The virtual account is auto-managed, and the virtual account can access the network in a domain environment. If the default value is used for the service accounts during SQL Server setup on Windows Server 2008 R2 or Windows 7, a virtual account using the instance name as the service name is used, in the format NT SERVICE\<SERVICENAME>. Services that run as virtual accounts access network resources by using the credentials of the computer account in the format <domain_name>\<computer_name>$. When specifying a virtual account to start SQL Server, leave the password blank. If the virtual account fails to register the Service Principal Name (SPN), register the SPN manually. For more information on registering a SPN manually, see Manual SPN Registration.

    System_CAPS_ICON_note.jpg Note


    Virtual accounts cannot be used for SQL Server Failover Cluster Instance, because the virtual account would not have the same SID on each node of the cluster.

    The following table lists examples of virtual account names.

    ServiceVirtual Account Name
    Default instance of the Database Engine serviceNT SERVICE\MSSQLSERVER
    Named instance of a Database Engine service named PAYROLLNT SERVICE\MSSQL$PAYROLL
    SQL Server Agent service on the default instance of SQL ServerNT SERVICE\SQLSERVERAGENT
    SQL Server Agent service on an instance of SQL Server named PAYROLLNT SERVICE\SQLAGENT$PAYROLL

For more information on Managed Service Accounts and Virtual Accounts, see the Managed service account and virtual account concepts section of Service Accounts Step-by-Step Guide and Managed Service Accounts Frequently Asked Questions (FAQ).

Security Note: Always run SQL Server services by using the lowest possible user rights. Use a MSA or virtual account when possible. When MSA and virtual accounts are not possible, use a specific low-privilege user account or domain account instead of a shared account for SQL Server services. Use separate accounts for different SQL Server services. Do not grant additional permissions to the SQL Server service account or the service groups. Permissions will be granted through group membership or granted directly to a service SID, where a service SID is supported.

Automatic Startup

In addition to having user accounts, every service has three possible startup states that users can control:

  • Disabled The service is installed but not currently running.

  • Manual The service is installed, but will start only when another service or application needs its functionality.

  • Automatic The service is automatically started by the operating system.

The startup state is selected during setup. When installing a named instance, the SQL Server Browser service should be set to start automatically.

Configuring Services During Unattended Installation

The following table shows the SQL Server services that can be configured during installation. For unattended installations, you can use the switches in a configuration file or at a command prompt.

SQL Server service nameSwitches for unattended installations*
MSSQLSERVERSQLSVCACCOUNT, SQLSVCPASSWORD, SQLSVCSTARTUPTYPE
SQLServerAgent**AGTSVCACCOUNT, AGTSVCPASSWORD, AGTSVCSTARTUPTYPE
MSSQLServerOLAPServiceASSVCACCOUNT, ASSVCPASSWORD, ASSVCSTARTUPTYPE
ReportServerRSSVCACCOUNT, RSSVCPASSWORD, RSSVCSTARTUPTYPE
Integration ServicesISSVCACCOUNT, ISSVCPASSWORD, ISSVCSTARTUPTYPE
SQL Server Distributed Replay ControllerDRU_CTLR, CTLRSVCACCOUNT,CTLRSVCPASSWORD, CTLRSTARTUPTYPE, CTLRUSERS
SQL Server Distributed Replay ClientDRU_CLT, CLTSVCACCOUNT, CLTSVCPASSWORD, CLTSTARTUPTYPE, CLTCTLRNAME, CLTWORKINGDIR, CLTRESULTDIR
R Services (In-database)EXTSVCACCOUNT, EXTSVCPASSWORD, ADVANCEDANALYTICS

*For more information and sample syntax for unattended installations, see Install SQL Server 2016 from the Command Prompt.

**The SQL Server Agent service is disabled on instances of SQL Server Express and SQL Server Express with Advanced Services.

Firewall Port

In most cases, when initially installed, the Database Engine can be connected to by tools such as SQL Server Management Studio installed on the same computer as SQL Server. SQL Server Setup does not open ports in the Windows firewall. Connections from other computers may not be possible until the Database Engine is configured to listen on a TCP port, and the appropriate port is opened for connections in the Windows firewall. For more information, see Configure the Windows Firewall to Allow SQL Server Access.

This section describes the permissions that SQL Server Setup configures for the per-service SID’s of the SQL Server services.

  • Service Configuration and Access Control

  • Windows Privileges and Rights

  • File System Permissions Granted to SQL Server Per-service SIDs or SQL Server Local Windows Groups

  • File System Permissions Granted to Other Windows User Accounts or Groups

  • File System Permissions Related to Unusual Disk Locations

  • Reviewing Additional Considerations

  • Registry Permissions

  • WMI

  • Named Pipes

Service Configuration and Access Control

SQL Server 2016 enables per-service SID for each of its services to provide service isolation and defense in depth. The per-service SID is derived from the service name and is unique to that service. For example, a service SID name for the Database Engine service might be NT Service\MSSQL$<InstanceName>. Service isolation enables access to specific objects without the need to run a high-privilege account or weaken the security protection of the object. By using an access control entry that contains a service SID, a SQL Server service can restrict access to its resources.

System_CAPS_ICON_note.jpg Note


On Windows 7 and Windows Server 2008 R2 the per-service SID can be the virtual account used by the service.

For most components SQL Server configures the ACL for the per-service account directly, so changing the service account can be done without having to repeat the resource ACL process.

When installing SSAS, a per-service SID for the Analysis Services service is created. A local Windows group is created, named in the format SQLServerMSASUser$computer_name$instance_name. The per-service SID NT SERVICE\MSSQLServerOLAPService is granted membership in the local Windows group, and the local Windows group is granted the appropriate permissions in the ACL. If the account used to start the Analysis Services service is changed, SQL Server Configuration Manager must change some Windows permissions (such as the right to log on as a service), but the permissions assigned to the local Windows group will still be available without any updating, because the per-service SID has not changed. This method allows the Analysis Services service to be renamed during upgrades.

During SQL Server installation, SQL Server Setup creates a local Windows groups for SSAS and the SQL Server Browser service. For these services, SQL Server configures the ACL for the local Windows groups.

Depending on the service configuration, the service account for a service or service SID is added as a member of the service group during install or upgrade.

Windows Privileges and Rights

The account assigned to start a service needs the Start, stop and pause permission for the service. The SQL Server Setup program automatically assigns this. First install Remote Server Administration Tools (RSAT). See Remote Server Administration Tools for Windows 7.

The following table shows permissions that SQL Server Setup requests for the per-service SIDs or local Windows groups used by SQL Server components.

SQL Server ServicePermissions granted by SQL Server Setup
SQL Server Database Engine:

(All rights are granted to the per-service SID. Default instance: NT SERVICE\MSSQLSERVER. Named instance: NT SERVICE\MSSQL$InstanceName.)
Log on as a service (SeServiceLogonRight)

 Replace a process-level token (SeAssignPrimaryTokenPrivilege)

 Bypass traverse checking (SeChangeNotifyPrivilege)

 Adjust memory quotas for a process (SeIncreaseQuotaPrivilege)

Permission to start SQL Writer

Permission to read the Event Log service

Permission to read the Remote Procedure Call service
SQL Server Agent: *

(All rights are granted to the per-service SID. Default instance: NT Service\SQLSERVERAGENT. Named instance: NT Service\SQLAGENT$InstanceName.)
Log on as a service (SeServiceLogonRight)

 Replace a process-level token (SeAssignPrimaryTokenPrivilege)

 Bypass traverse checking (SeChangeNotifyPrivilege)

 Adjust memory quotas for a process (SeIncreaseQuotaPrivilege)
SSAS:

(All rights are granted to a local Windows group. Default instance: SQLServerMSASUser$ComputerName$MSSQLSERVER. Named instance: SQLServerMSASUser$ComputerName$InstanceName. Power Pivot for SharePoint instance: SQLServerMSASUser$ComputerName$PowerPivot.)
Log on as a service (SeServiceLogonRight)

For tabular only:

 Increase a process working set (SeIncreaseWorkingSetPrivilege)

 Adjust memory quotas for a process (SeIncreaseQuotaSizePrivilege)

 Lock pages in memory (SeLockMemoryPrivilege) – this is needed only when paging is turned off entirely.

For failover cluster installations only:

 Increase scheduling priority (SeIncreaseBasePriorityPrivilege)
SSRS:

(All rights are granted to the per-service SID. Default instance: NT SERVICE\ReportServer. Named instance: NT SERVICE\$InstanceName.)
Log on as a service (SeServiceLogonRight)
SSIS:

(All rights are granted to the per-service SID. Default instance and named instance: NT SERVICE\MsDtsServer130. Integration Services does not have a separate process for a named instance.)
Log on as a service (SeServiceLogonRight)

Permission to write to application event log.

 Bypass traverse checking (SeChangeNotifyPrivilege)

 Impersonate a client after authentication (SeImpersonatePrivilege)
Full-text search:

(All rights are granted to the per-service SID. Default instance: NT Service\MSSQLFDLauncher. Named instance: NT Service\ MSSQLFDLauncher$InstanceName.)
Log on as a service (SeServiceLogonRight)

 Adjust memory quotas for a process (SeIncreaseQuotaPrivilege)

 Bypass traverse checking (SeChangeNotifyPrivilege)
SQL Server Browser:

(All rights are granted to a local Windows group. Default or named instance: SQLServer2005SQLBrowserUser$ComputerName. SQL Server Browser does not have a separate process for a named instance.)
Log on as a service (SeServiceLogonRight)
SQL Server VSS Writer:

(All rights are granted to the per-service SID. Default or named instance: NT Service\SQLWriter. SQL Server VSS Writer does not have a separate process for a named instance.)
The SQLWriter service runs under the LOCAL SYSTEM account which has all the required permissions. SQL Server setup does not check or grant permissions for this service.
SQL Server Distributed Replay Controller:Log on as a service (SeServiceLogonRight)
SQL Server Distributed Replay Client:Log on as a service (SeServiceLogonRight)
Launchpad:Log on as a service (SeServiceLogonRight)

 Replace a process-level token (SeAssignPrimaryTokenPrivilege)

Bypass traverse checking (SeChangeNotifyPrivilege)

Adjust memory quotas for a process (SeIncreaseQuotaPrivilege)

*The SQL Server Agent service is disabled on instances of SQL Server Express.

File System Permissions Granted to SQL Server Per-service SIDs or Local Windows Groups

SQL Server service accounts must have access to resources. Access control lists are set for the per-service SID or the local Windows group.

System_CAPS_ICON_important.jpg Important


For failover cluster installations, resources on shared disks must be set to an ACL for a local account.

The following table shows the ACLs that are set by SQL Server Setup:

Service account forFiles and foldersAccess
MSSQLServerInstid\MSSQL\backupFull control
Instid\MSSQL\binnRead, Execute
Instid\MSSQL\dataFull control
Instid\MSSQL\FTDataFull control
Instid\MSSQL\InstallRead, Execute
Instid\MSSQL\LogFull control
Instid\MSSQL\RepldataFull control
130\sharedRead, Execute
Instid\MSSQL\Template Data (SQL Server Express only)Read
SQLServerAgent*Instid\MSSQL\binnFull control
Instid\MSSQL\binnFull control
Instid\MSSQL\LogRead, Write, Delete, Execute
130\comRead, Execute
130\sharedRead, Execute
130\shared\ErrordumpsRead, Write
ServerName\EventLogFull control
FTSInstid\MSSQL\FTDataFull control
Instid\MSSQL\FTRefRead, Execute
130\sharedRead, Execute
130\shared\ErrordumpsRead, Write
Instid\MSSQL\InstallRead, Execute
Instid\MSSQL\jobsRead, Write
MSSQLServerOLAPservice130\shared\ASConfigFull control
Instid\OLAPRead, Execute
Instid\Olap\DataFull control
Instid\Olap\LogRead, Write
Instid\OLAP\BackupRead, Write
Instid\OLAP\TempRead, Write
130\shared\ErrordumpsRead, Write
SQLServerReportServerUserInstid\Reporting Services\Log FilesRead, Write, Delete
Instid\Reporting Services\ReportServerRead, Execute
Instid\Reportingservices\Reportserver\global.asaxFull control
Instid\Reportingservices\Reportserver\Reportserver.configRead
Instid\Reporting Services\reportManagerRead, Execute
Instid\Reporting Services\RSTempfilesRead, Write, Execute, Delete
130\sharedRead, Execute
130\shared\ErrordumpsRead, Write
MSDTSServer100130\dts\binn\MsDtsSrvr.ini.xmlRead
130\dts\binnRead, Execute
130\sharedRead, Execute
130\shared\ErrordumpsRead, Write
SQL Server Browser130\shared\ASConfigRead
130\sharedRead, Execute
130\shared\ErrordumpsRead, Write
SQLWriterN/A (Runs as local system)
UserInstid\MSSQL\binnRead, Execute
Instid\Reporting Services\ReportServerRead, Execute, List Folder Contents
Instid\Reportingservices\Reportserver\global.asaxRead
Instid\Reporting Services\ReportManagerRead, Execute
Instid\Reporting Services\ReportManager\pagesRead
Instid\Reporting Services\ReportManager\StylesRead
130\dtsRead, Execute
130\toolsRead, Execute
100\toolsRead, Execute
90\toolsRead, Execute
80\toolsRead, Execute
130\sdkRead
Microsoft SQL Server\130\Setup BootstrapRead, Execute
SQL Server Distributed Replay Controller<ToolsDir>\DReplayController\Log\ (empty directory)Read, Execute, List Folder Contents
<ToolsDir>\DReplayController\DReplayController.exeRead, Execute, List Folder Contents
<ToolsDir>\DReplayController\resources\Read, Execute, List Folder Contents
<ToolsDir>\DReplayController\{all dlls}Read, Execute, List Folder Contents
<ToolsDir>\DReplayController\DReplayController.configRead, Execute, List Folder Contents
<ToolsDir>\DReplayController\IRTemplate.tdfRead, Execute, List Folder Contents
<ToolsDir>\DReplayController\IRDefinition.xmlRead, Execute, List Folder Contents
SQL Server Distributed Replay Client<ToolsDir>\DReplayClient\Log\Read, Execute, List Folder Contents
<ToolsDir>\DReplayClient\DReplayClient.exeRead, Execute, List Folder Contents
<ToolsDir>\DReplayClient\resources\Read, Execute, List Folder Contents
<ToolsDir>\DReplayClient\ (all dlls)Read, Execute, List Folder Contents
<ToolsDir>\DReplayClient\DReplayClient.configRead, Execute, List Folder Contents
<ToolsDir>\DReplayClient\IRTemplate.tdfRead, Execute, List Folder Contents
<ToolsDir>\DReplayClient\IRDefinition.xmlRead, Execute, List Folder Contents
Launchpad%binnRead, Execute
ExtensiblilityDataFull control
Log\ExtensibiltityLogFull control

*The SQL Server Agent service is disabled on instances of SQL Server Express and SQL Server Express with Advanced Services.

When database files are stored in a user-defined location, you must grant the per-service SID access to that location. For more information about granting file system permissions to a per-service SID, see Configure File System Permissions for Database Engine Access.

File System Permissions Granted to Other Windows User Accounts or Groups

Some access control permissions might have to be granted to built-in accounts or other SQL Server service accounts. The following table lists additional ACLs that are set by SQL Server Setup.

Requesting componentAccountResourcePermissions
MSSQLServerPerformance Log UsersInstid\MSSQL\binnList folder contents
Performance Monitor UsersInstid\MSSQL\binnList folder contents
Performance Log Users, Performance Monitor Users\WINNT\system32\sqlctr130.dllRead, Execute
Administrator only\\.\root\Microsoft\SqlServer\ServerEvents\<sql_instance_name>*Full control
Administrators, System\tools\binn\schemas\sqlserver\2004\07\showplanFull control
Users\tools\binn\schemas\sqlserver\2004\07\showplanRead, Execute
Reporting Services<Report Server Web Service Account><install>\Reporting Services\LogFilesDELETE

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
Report Manager Application pool identity, ASP.NET account, Everyone<install>\Reporting Services\ReportManager, <install>\Reporting Services\ReportManager\Pages\*.*, <install>\Reporting Services\ReportManager\Styles\*.*, <install>\Reporting Services\ReportManager\webctrl_client\1_0\*.*Read
Report Manager Application pool identity<install>\Reporting Services\ReportManager\Pages\*.*Read
<Report Server Web Service Account><install>\Reporting Services\ReportServerRead
<Report Server Web Service Account><install>\Reporting Services\ReportServer\global.asaxFull
Everyone<install>\Reporting Services\ReportServer\global.asaxREAD_CONTROL

FILE_READ_DATA

FILE_READ_EA

FILE_READ_ATTRIBUTES
Network service<install>\Reporting Services\ReportServer\ReportService.asmxFull
Everyone<install>\Reporting Services\ReportServer\ReportService.asmxREAD_CONTROL

SYNCHRONIZE FILE_GENERIC_READ

FILE_GENERIC_EXECUTE

FILE_READ_DATA

FILE_READ_EA

FILE_EXECUTE

FILE_READ_ATTRIBUTES
ReportServer Windows Services Account<install>\Reporting Services\ReportServer\RSReportServer.configDELETE

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
EveryoneReport Server keys (Instid hive)Query Value

Enumerate SubKeys

Notify

Read Control
Terminal Services UserReport Server keys (Instid hive)Query Value

Set Value

Create SubKey

Enumerate SubKey

Notify

Delete

Read Control
Power UsersReport Server keys (Instid hive)Query Value

Set Value

Create Subkey

Enumerate Subkeys

Notify

Delete

Read Control

*This is the WMI provider namespace.

File System Permissions Related to Unusual Disk Locations

The default drive for locations for installation is systemdrive, normally drive C. When tempdb or user databases are installed

Non-default Drive

When installed to a local drive that is not the default drive, the per-service SID must have access to the file location. SQL Server Setup will provision the required access.

Network Share

When databases are installed to a network share, the service account must have access to the file location of the user and tempdb databases. SQL Server Setup cannot provision access to a network share. The user must provision access to a tempdb location for the service account before running setup. The user must provision access to the user database location before creating the database.

System_CAPS_ICON_note.jpg Note


Virtual accounts cannot be authenticated to a remote location. All virtual accounts use the permission of machine account. Provision the machine account in the format <domain_name>\<computer_name>$.

Reviewing Additional Considerations

The following table shows the permissions that are required for SQL Server services to provide additional functionality.

Service/ApplicationFunctionalityRequired permission
SQL Server (MSSQLSERVER)Write to a mail slot using xp_sendmail.Network write permissions.
SQL Server (MSSQLSERVER)Run xp_cmdshell for a user other than a SQL Server administrator.Act as part of operating system and replace a process-level token.
SQL Server Agent (MSSQLSERVER)Use the autorestart feature.Must be a member of the Administrators local group.
Database Engine Tuning AdvisorTunes databases for optimal query performance.On first use, a user who has system administrative credentials must initialize the application. After initialization, dbo users can use the Database Engine Tuning Advisor to tune only those tables that they own. For more information, see "Initializing Database Engine Tuning Advisor on First Use" in SQL Server Books Online.
System_CAPS_ICON_important.jpg Important


Before you upgrade SQL Server, enable Windows Authentication for SQL Server Agent and verify the required default configuration: that the SQL Server Agent service account is a member of the SQL Serversysadmin group.

Registry Permissions

The registry hive is created under HKLM\Software\Microsoft\Microsoft SQL Server\<Instance_ID> for instance-aware components. For example

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

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

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

The registry also maintains a mapping of instance ID to instance name. Instance ID to instance name mapping is maintained as follows:

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

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

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

WMI

Windows Management Instrumentation (WMI) must be able to connect to the Database Engine. To support this, the per-service SID of the Windows WMI provider (NT SERVICE\winmgmt) is provisioned in the Database Engine.

The SQL WMI provider requires the following permissions:

  • Membership in the db_ddladmin or db_owner fixed database roles in the msdb database.

  • CREATE DDL EVENT NOTIFICATION permission in the server.

  • CREATE TRACE EVENT NOTIFICATION permission in the Database Engine.

  • VIEW ANY DATABASE server-level permission.

    SQL Server setup creates a SQL WMI namespace and grants read permission to the SQL Server Agent service-SID.

Named Pipes

In all installation, SQL Server Setup provides access to the SQL Server Database Engine through the shared memory protocol, which is a local named pipe.

This section describes how accounts are provisioned inside the various SQL Server components.

  • Database Engine Provisioning

    • Windows Principals

    • sa Account

    • SQL Server Per-service SID Login and Privileges

    • SQL Server Agent Login and Privileges

    • HADRON and SQL Failover Cluster Instance and Privileges

    • SQL Writer and Privileges

    • SQL WMI and Privileges

  • SSAS Provisioning

  • SSRS Provisioning

Database Engine Provisioning

The following accounts are added as logins in the SQL Server Database Engine.

Windows Principals

During setup, SQL Server Setup requires at least one user account to be named as a member of the sysadmin fixed server role.

sa Account

The sa account is always present as a Database Engine login and is a member of the sysadmin fixed server role. When the Database Engine is installed using only Windows Authentication (that is when SQL Server Authentication is not enabled), the sa login is still present but is disabled. For information about enabling the sa account, see Change Server Authentication Mode.

SQL Server Per-service SID Login and Privileges

The per-service SID of the SQL Server service is provisioned as a Database Engine login. The per-service SID login is a member of the sysadmin fixed server role.

SQL Server Agent Login and Privileges

The per-service SID of the SQL Server Agent service is provisioned as a Database Engine login. The per-service SID login is a member of the sysadmin fixed server role.

 Always On Availability Groups and SQL Failover Cluster Instance and Privileges

When installing the Database Engine as a Always On Availability Groups or SQL Failover Cluster Instance (SQL FCI), LOCAL SYSTEM is provisioned in the Database Engine. The LOCAL SYSTEM login is granted the ALTER ANY AVAILABILITY GROUP permission (for Always On Availability Groups) and the VIEW SERVER STATE permission (for SQL FCI).

SQL Writer and Privileges

The per-service SID of the SQL Server VSS Writer service is provisioned as a Database Engine login. The per-service SID login is a member of the sysadmin fixed server role.

SQL WMI and Privileges

SQL Server Setup provisions the NT SERVICE\Winmgmt account as a Database Engine login and adds it to the sysadmin fixed server role.

SSRS Provisioning

The account specified during setup is provisioned as a member of the RSExecRole database role. For more information, see Configure the Report Server Service Account (SSRS Configuration Manager).

SSAS Provisioning

SSAS service account requirements vary depending on how you deploy the server. If you are installing Power Pivot for SharePoint, SQL Server Setup requires that you configure the Analysis Services service to run under a domain account. Domain accounts are required to support the managed account facility that is built into SharePoint. For this reason, SQL Server Setup does not provide a default service account, such as a virtual account, for a Power Pivot for SharePoint installation. For more information about provisioning Power Pivot for SharePoint, see Configure Power Pivot Service Accounts.

For all other standalone SSAS installations, you can provision the service to run under a domain account, built-in system account, managed account, or virtual account. For more information about account provisioning, see Configure Service Accounts (Analysis Services).

For clustered installations, you must specify a domain account or a built-in system account. Neither managed accounts nor virtual accounts are supported for SSAS failover clusters.

All SSAS installations require that you specify a system administrator of the Analysis Services instance. Administrator privileges are provisioned in the Analysis Services Server role.

SSRS Provisioning

The account specified during setup is provisioned in the Database Engine as a member of the RSExecRole database role. For more information, see Configure the Report Server Service Account (SSRS Configuration Manager).

This section describes the changes made during upgrade from a previous version of SQL Server.

  • SQL Server 2016 requires Windows Server 2008 R2 SP1, Windows Server 2012, Windows 8.0, Windows Server 2012 R2, or Windows 8.1, . Any previous version of SQL Server running on a lower operating system version must have the operating system upgraded before upgrading SQL Server.

  • During upgrade of SQL Server 2005 to SQL Server 2016, SQL Server Setup will configure SQL Server in the following way.

    • The Database Engine runs with the security context of the per-service SID. The per-service SID is granted access to the file folders of the SQL Server instance (such as DATA), and the SQL Server registry keys.

    • The per-service SID of the Database Engine is provisioned in the Database Engine as a member of the sysadmin fixed server role.

    • The per-service SID’s are added to the local SQL Server Windows groups, unless SQL Server is a Failover Cluster Instance.

    • The SQL Server resources remain provisioned to the local SQL Server Windows groups.

    • The local Windows group for services is renamed from SQLServer2005MSSQLUser$<computer_name>$<instance_name> to SQLServerMSSQLUser$<computer_name>$<instance_name>. File locations for migrated databases will have Access Control Entries (ACE) for the local Windows groups. The file locations for new databases will have ACE’s for the per-service SID.

  • During upgrade from SQL Server 2008, SQL Server Setup will be preserve the ACE’s for the SQL Server 2008 per-service SID.

  • For a SQL Server Failover Cluster Instance, the ACE for the domain account configured for the service will be retained.

This section contains additional information about SQL Server services.

  • Description of Service Accounts

  • Identifying Instance-Aware and Instance-Unaware Services

  • Localized Service Names

Description of Service Accounts

The service account is the account used to start a Windows service, such as the SQL Server Database Engine.

Accounts Available With Any Operating System

In addition to the new MSA and virtual accounts described earlier, the following accounts can be used.

 Domain User Account

If the service must interact with network services, access domain resources like file shares or if it uses linked server connections to other computers running SQL Server, you might use a minimally-privileged domain account. Many server-to-server activities can be performed only with a domain user account. This account should be pre-created by domain administration in your environment.

System_CAPS_ICON_note.jpg Note


If you configure the application to use a domain account, you can isolate the privileges for the application, but must manually manage passwords or create a custom solution for managing these passwords. Many server applications use this strategy to enhance security, but this strategy requires additional administration and complexity. In these deployments, service administrators spend a considerable amount of time on maintenance tasks such as managing service passwords and service principal names (SPNs), which are required for Kerberos authentication. In addition, these maintenance tasks can disrupt service.

 Local User Accounts

If the computer is not part of a domain, a local user account without Windows administrator permissions is recommended.

 Local Service Account

The Local Service account is a built-in account that has the same level of access to resources and objects as members of the Users group. This limited access helps safeguard the system if individual services or processes are compromised. Services that run as the Local Service account access network resources as a null session without credentials. Be aware that the Local Service account is not supported for the SQL Server or SQL Server Agent services. Local Service is not supported as the account running those services because it is a shared service and any other services running under local service would have system administrator access to SQL Server. The actual name of the account is NT AUTHORITY\LOCAL SERVICE.

 Network Service Account

The Network Service account is a built-in account that has more access to resources and objects than members of the Users group. Services that run as the Network Service account access network resources by using the credentials of the computer account in the format <domain_name>\<computer_name>$. The actual name of the account is NT AUTHORITY\NETWORK SERVICE.

 Local System Account

Local System is a very high-privileged built-in account. It has extensive privileges on the local system and acts as the computer on the network. The actual name of the account is NT AUTHORITY\SYSTEM.

Identifying Instance-Aware and Instance-Unaware Services

Instance-aware services are associated with a specific instance of SQL Server, and have their own registry hives. You can install multiple copies of instance-aware services by running SQL Server Setup for each component or service. Instance-unaware services are shared among all installed SQL Server instances. They are not associated with a specific instance, are installed only once, and cannot be installed side-by-side.

Instance-aware services in SQL Server include the following:

  • SQL Server

  • SQL Server Agent

    Be aware that the SQL Server Agent service is disabled on instances of SQL Server Express and SQL Server Express with Advanced Services.

  • Analysis Services*

  • Reporting Services

  • Full-text search

Instance-unaware services in SQL Server include the following:

  • Integration Services

  • SQL Server Browser

  • SQL Writer

*Analysis Services in SharePoint integrated mode runs as 'Power Pivot' as a single, named instance. The instance name is fixed. You cannot specify a different name. You can install only one instance of Analysis Services running as 'Power Pivot' on each physical server.

Localized Service Names

The following table shows service names that are displayed by localized versions of Windows.

LanguageName for Local ServiceName for Network ServiceName for Local SystemName for Admin Group
English

Simplified Chinese

Traditional Chinese

Korean

Japanese
NT AUTHORITY\LOCAL SERVICENT AUTHORITY\NETWORK SERVICENT AUTHORITY\SYSTEMBUILTIN\Administrators
GermanNT-AUTORITÄT\LOKALER DIENSTNT-AUTORITÄT\NETZWERKDIENSTNT-AUTORITÄT\SYSTEMVORDEFINIERT\Administratoren
FrenchAUTORITE NT\SERVICE LOCALAUTORITE NT\SERVICE RÉSEAUAUTORITE NT\SYSTEMBUILTIN\Administrators
ItalianNT AUTHORITY\SERVIZIO LOCALENT AUTHORITY\SERVIZIO DI RETENT AUTHORITY\SYSTEMBUILTIN\Administrators
SpanishNT AUTHORITY\SERVICIO LOCNT AUTHORITY\SERVICIO DE REDNT AUTHORITY\SYSTEMBUILTIN\Administradores
RussianNT AUTHORITY\LOCAL SERVICENT AUTHORITY\NETWORK SERVICENT AUTHORITY\SYSTEMBUILTIN\Администраторы

Security Considerations for a SQL Server Installation

File Locations for Default and Named Instances of SQL Server

Install Master Data Services