Chapter 1 Securing Your Server and Network(3):使用托管服务帐号

原文出处:http://blog.csdn.net/dba_huangzj/article/details/38017703,专题目录:http://blog.csdn.net/dba_huangzj/article/details/37906349

未经作者同意,任何人不得以“原创”形式发布,也不得已用于商业用途,本人不负责任何法律责任。

        前一篇:http://blog.csdn.net/dba_huangzj/article/details/37927319

 

前言:

 

托管服务帐号(Managed Servcie Account)从Windows Server 2008 R2出现, 它的目的是使用于运行服务的活动目录帐号更加容易管理。在此之前,必须创建用于作为服务帐号的域帐号相同类型的用户,但是需要禁用密码策略以免密码过期导致服务运行发生错误。但是禁用密码策略又会降低安全性。

为了解决这些问题,出现了托管服务帐号,它是一个绑定到特定计算机上的活动目录帐号,它的密码由活动目录自动管理,并且可以在不影响服务运行的情况下定期修改密码。另外还能简化Service Principal Name(SPN/服务主体名称,客户端的唯一标识,在后续详细介绍)。

 

实现:

 

托管服务帐号必须运行在Windows Server 2008R2或Win 7以上,并且需要打上一个热修复补丁:http://support.microsoft.com/kb/2494158 。了另外,创建托管服务帐号需要使用PowerShell实现,并且在活动目录上安装PowerShell 管理单元(Snap-In):

1.如果没安装PowerShell管理单元,可以在活动目录上,打开服务器管理器,右键【功能】节点,选择【添加功能】,在【远程服务器管理工具】→【角色管理工具 】→【AD DS 和AD LDS 工具】节点上勾选【Windows PowerShell 的 Active Directory 模块】并进行安装,如下图:

 


 

2. 以活动目录下有足够权限的帐号打开PowerShell ,导入ActiveDirectory模块:

Import-Module ActiveDirectory



如果发生上面的警告,是因为ADWS服务没有启动,这种问题一般出现在虚拟机,临时解决方法就是在Powershell里面输入

restart-service adws

根本解决方法就是把adws服务设置成延时启动。

3. 创建托管帐号:

New-ADServiceAccount -Name SQL-SRV1 -Enabled $true

其中SQL-SRV1就是创建的帐号名。

 

4. 把新加的帐号关联到SQL Server计算机上,本例关联到机器名为【SQL-A】上。

Add-ADComputerServiceAccount -Identity SQL-A -ServiceAccount SQL-SRV1


5.托管服务帐号必须安装在运行有SQL Server的服务器上,所以在SQL-A上打开PowerShell,先导入ActiveDirectory模块(步骤2),然后输入下面命令:

Install-ADServiceAccount -Identity SQL-SRV1

如果此过程报错,可以在SQL-A(也就是域成员服务器上)的PowerShell中输入:

Import-Module ServerManager
Add-WindowsFeature RSAT-AD-PowerShell



然后再根据步骤2的命令导入模版,再输入:


Install-ADServiceAccount -Identity SQL-SRV1

即可,如图:


 

 

6. 注意不要创建超过15个字符的托管帐号名,否则会存在Bug。

现在你可以用这个帐号来作为服务帐号,帐号名必须使用$符号,比如:(DOMAIN\SQL-SRV1$)。密码和确认密码留空。参考http://blog.csdn.net/dba_huangzj/article/details/37924127 进行配置,需要提醒的是这里先要在Windows上的服务管理器配置帐号,而不能直接在SQL Server配置管理器中配置,否则报错。


 

在服务管理器中配置完之后,在SQL Server配置管理器中重启SQL Server服务即可,不需要再次配置:


 

原理:

 

托管服务帐号是绑定到单独的机器上,并且仅用于服务所用,所以不能用来登录,也不能用于群集服务,因为群集需要需要服务帐号能够跨多个群集节点。但是和本地内置帐号不同,托管帐号的名字在网络中发现,同时可以用于访问网络共享资源。

当你创建一个托管帐号在活动目录上时,不需要指定密码,密码会由活动目录自动管理。并且根据密码策略(默认30天)自动刷新,期间不影响SQL Server 服务。

在创建完之后,可以在活动目录的【Active Directory 用户和计算机】工具中的【Managed Service Accounts】节点看到你的帐号,但是只能看不能改,一切操作都需要使用PowerShell。


 

在上面过程中,使用New-ADServiceAccount命令可能会出现拒绝访问(Access is denied error)错误,这是因为用户帐号控制(User Account Control,UAC)策略导致的,可以使用域管理员帐号登录操作,或者临时禁用Admin Approval Mode。

禁用Admin Approval Mode 可以在域管理器中运行【secpol.msc】,然后找到下图中的配置,并禁用,然后重启计算机。




更多信息:

 

如果你不再使用托管服务帐号,应该把它移除:

移除托管帐号:

在对应服务器上运行:

Uninstall-ADServiceAccount -Identity SQL-SRV1


 

在AD上运行:

Remove-ADServiceAccount -Identity SQL-SRV1


 

更多信息可以访问:

Service Accounts Step-by-Step Guide  http://technet.microsoft.com/en-us/library/dd548356%28WS.10%29.aspx

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。