原创地址:http://www.cnblogs.com/jfzhu/p/4007472.html
转载请注明出处
(一)Windows服务使用的登陆帐号
Windows服务只有登录到某一帐户的情况下才能访问操作系统中的资源和对象。服务一般不要更改默认的登录帐户,否则可能导致服务失败。如果选定帐户没有足够的权限,Microsoft 管理控制台(MMC)的服务管理单元将自动为该帐户授予登录所管理计算机中服务的用户权限。Windows Server 的服务可以用域帐户或者三个内置的本地帐户作为各系统服务的登录帐户,三个内置帐户没有密码:
(1) 本地系统帐户(Local System):本地系统帐户功能强大,它可对系统进行完全访问
(2) 本地服务帐户(NT AUTHORITYLocal Service)
(3) 网络服务帐户(NT AUTHORITYNetwork Service)
系统中绝大多数的服务都是使用上述三个内置本地帐户作为登陆帐户。
(二)Managed Service Account
在一些情况下使用域帐户和内置帐户存在一些问题,假设SQL Server的服务使用的是Local System帐号,那么其他使用Local System帐号的服务都可以连接到SQL Server数据库;如果使用的是域帐户,那么域帐户的密码在更改后,还需要在services.msc中手动相应更改这些服务的登陆帐户密码;如果服务所使用的域帐户的密码设置为永不过期,又会留下系统安全隐患,所以从Windows Server 2008 R2和Windows 7开始,一个新功能Managed Service Account(托管服务帐户)应运而生。托管服务帐户的密码由系统生成,每30天更改一次,使用托管服务帐户作为Windows服务的登陆帐户不需要设置密码。托管服务帐户要只能绑定在一台计算机上使用。为了将不同的Windows服务隔离开,一个托管服务帐户应该只给一个服务来使用。
(三)SQL Server 2012中的Managed Service Account
SQL Server 2012为每个SQL Server相关的服务都创建了一个托管服务帐户(SQL Server Browser和Analysis Service除外。如何安装SQL Server,请参见《Step by step SQL Server 2012的安装》)。
SQL Server所使用的托管服务帐户命名规范如下表
Service Name |
Instance |
Service Account Naming Convention |
Database Engine | Default | MSSQLServer |
Agent Service | Default | SQLSERVERAgent |
Reporting Server | Default | ReportServer |
Analysis Service | Default | MSSQLServerOLAPService |
Fulltext Service | Default | MSSQLFDLauncher |
Database Engine | InstanceName | MSSQL$InstanceName |
Agent Service | InstanceName | SQLAgent$InstanceName |
Reporting Server | InstanceName | ReportServer$InstanceName |
Analysis Service | InstanceName | MSOLAP$InstanceName |
Fulltext Service | InstanceName | MSSQLFDLauncher$InstanceName |
Integration Service | Not applicable | MSDtsServer110 |
检查一下,SQL Server中,Database Engine和SQL Server Agent所使用的服务帐户都被赋予了Sa角色。
总结:
(1) 在以前的系统中,Windows服务可以使用域帐户,也可以使用三个内置的本地帐户作为登陆帐户。这三个本地帐户分别为 Local System、NT AUTHORITYLocal Service 和 NT AUTHORITYNetwork Service。选定Windows服务登陆帐户时,该帐户可以不具有任何权限,MMC的服务管理单元将自动为该帐户授予登录所管理计算机中服务的用户权限。
(2) 从Windows 7和Windows 2008 R2开始出现了Managed Service Account,使用这种类型的帐户,系统可以自动为你处理帐户密码。
(3) SQL Server 2012为每个SQL Server相关的服务都创建了一个托管服务帐户(SQL Server Browser和Analysis Service除外)。