未经作者允许。不论什么人不得以“原创”形式公布,也不得已用于商业用途,本人不负责不论什么法律责任。
前一篇:http://blog.csdn.net/dba_huangzj/article/details/37927319
前言:
托管服务帐号(Managed Servcie Account)从Windows Server 2008 R2出现。 它的目的是使用于执行服务的活动文件夹帐号更加easy管理。在此之前。必须创建用于作为服务帐号的域帐号同样类型的用户,可是须要禁用password策略以免password过期导致服务执行错误发生。可是禁用password策略又会减少安全性。
为了解决这些问题,出现了托管服务帐号。它是一个绑定到特定计算机上的活动文件夹帐号,它的password由活动文件夹自己主动管理,而且能够在不影响服务执行的情况下定期改动password。
另外还能简化Service Principal Name(SPN/服务主体名称。client的唯一标识,在兴许具体介绍)。
实现:
托管服务帐号必须执行在Windows Server 2008R2或Win 7以上,而且须要打上一个热修复补丁:http://support.microsoft.com/kb/2494158 。
了另外。创建托管服务帐号须要使用PowerShell实现,而且在活动文件夹上安装PowerShell 管理单元(Snap-In):
1.假设没安装PowerShell管理单元。能够在活动文件夹上,打开server管理器,右键【功能】节点,选择【加入功能】,在【远程server管理工具】→【角色管理工具 】→【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的server上,所以在SQL-A上打开PowerShell,先导入ActiveDirectory模块(步骤2)。然后输入以下命令:
Install-ADServiceAccount -Identity SQL-SRV1
假设此过程报错,能够在SQL-A(也就是域成员server上)的PowerShell中输入:
Import-Module ServerManager Add-WindowsFeature RSAT-AD-PowerShell
然后再依据步骤2的命令导入模版。再输入:
Install-ADServiceAccount -Identity SQL-SRV1
就可以,如图:
6. 注意不要创建超过15个字符的托管帐号名,否则会存在Bug。
如今你能够用这个帐号来作为服务帐号,帐号名必须使用$符号,比方:(DOMAINSQL-SRV1$)。password和确认password留空。參考http://blog.csdn.net/dba_huangzj/article/details/37924127 进行配置。须要提醒的是这里先要在Windows上的服务管理器配置帐号,而不能直接在SQL Server配置管理器中配置。否则报错。
在服务管理器中配置完之后。在SQL Server配置管理器中重新启动SQL Server服务就可以,不须要再次配置:
原理:
托管服务帐号是绑定到单独的机器上,而且仅用于服务所用,所以不能用来登录,也不能用于群集服务,由于群集须要须要服务帐号能够跨多个群集节点。
可是和本地内置帐号不同,托管帐号的名字在网络中发现。同一时候能够用于訪问网络共享资源。
当你创建一个托管帐号在活动文件夹上时,不须要指定password。password会由活动文件夹自己主动管理。而且依据password策略(默认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】。然后找到下图中的配置。并禁用,然后重新启动计算机。
很多其它信息:
假设你不再使用托管服务帐号,应该把它移除:
移除托管帐号:
在相应server上执行:
Uninstall-ADServiceAccount -Identity SQL-SRV1
在AD上执行:
Remove-ADServiceAccount -Identity SQL-SRV1
很多其它信息能够訪问: