Chapter 1 Securing Your Server and Network(3):使用託管服務帳號,chaptersecuring
原文出處: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 ServerManagerAdd-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