標籤:
原版的:http://blog.csdn.net/dba_huangzj/article/details/37924127 ,專題檔案夾:http://blog.csdn.net/dba_huangzj/article/details/37906349
未經作者允許,不論什麼人不得以“原創”形式公布。也不得已用於商業用途。本人不負責不論什麼法律責任。
前言:
SQL Server是一個Windows 服務,以某個Windows使用者或系統使用者權限執行在Windows作業系統上。選擇合適的帳號執行SQL Server是非常重要的。本系列文章僅僅關注安全性方面。
選擇合適的帳號之所以非常重要。當中一個原因是假設許可權不恰當,使用者(client)能夠通過SQL Server對Windows OS或其它資源進行非預期使用。
實現:
首次選擇帳號發生在安裝過程中,可是在安裝過後能夠更改。怎樣安裝SQL Server超出本文範圍。所以這裡跳過安裝過程中選擇帳號部分。在安裝完成之後,能夠依據以下步驟實現。
實現步驟:
1. 在命令列輸入:services.msc 開啟服務管理員。找到SQL Server服務,
2. 右鍵這個服務。選擇【屬性】,並查看當前執行帳號 :
3. 開啟SQL Server 組態管理員,找到SQL Server相應執行個體名的選項,本人機上有兩個執行個體,一個是2008R2。一個是2012,2012為具名執行個體,所以選擇SQL Server(SQL2012)這個服務,並右鍵選擇【屬性】。
4. 開啟【屬性】頁之後,選擇【登入】頁。
5. 選擇【內建帳戶】。下拉框中有三種可選項,興許部分將介紹這些帳號:
6. 當改動了帳號之後,點擊【確定】button。會提示須要重新啟動SQL Server服務。點擊【是】。然後重新啟動服務,因為改動執行帳號必須重新啟動服務,所以假設在正式環境下。須要謹慎,而且計劃性地改動。
7. 至此。我們示範了怎樣改動SQL Server的執行帳號。接下來將介紹一些原理及注意事項。
原理:
SQL Server服務繼承了底層作業系統(即Windows OS)上Windows帳號的許可權。它並不一定須要有所在機器上的管理員權限。
僅僅須要有對資料檔案/交易記錄檔、錯誤記錄檔檔案、備份檔案所在檔案夾的許可權和少量系統許可權就可以。
假設在安裝SQL Server之後改動服務帳號,強烈建議使用SQL Server組態管理員實現,而不要用Windows 服務控制管理員。因為後者並不能非常好地進行許可權管控。
在Windows Server 2008 R2中,在安裝SQL Server過程中預設使用虛擬帳號(Virtual Account,將在興許文章介紹)作為啟動帳號。假設在步驟5中選擇了【內建帳號】,不須要提供password,這些password由作業系統管理和預設。以下簡要介紹一下步驟5中的兩類帳號:
- Local System:這是一個擁有所在電腦上管理員權限的Windows 系統帳號,在網路中顯示為(<Domain>\<Machine>)形式。假設機器存在於域環境中,能夠對這類帳號授予訪問網路資源的許可權。
- Network Service:這個帳號相對於Local System而言,有非常多本機許可權限制,可是能夠和Local System一樣訪問網路資源。
你能夠選擇一個已經建立的Windows或域帳號。以全名形式((<Domain>\<Account>)作為執行帳號,可是要確保這個帳號沒有受到WIndows上的“password到期策略”影響,否者可能在系統執行了一段時間之後因為password到期而導致整個SQL Server服務停止。
作為實踐,建議使用實際Windows 帳號替代內建帳號,因為內建帳號被多種服務所共用,許可權管控不如實際WIndows 帳號。比方攻擊者能夠使用管理員權限登入SQL Server,並用xp_cmdshell等外部預存程序進行作業系統層級的攻擊。
使用實際Windows帳號能降低這樣的情況的發生機會。
很多其它資訊:
要允許一個Windows帳號能用於執行一個服務(不是全部帳號都能執行服務)。須要授予【Log on as a service right】(中文為【信任電腦和使用者帳戶能夠執行委派】)許可權。過程例如以下:
1. 在本機上。開啟管理工具,並選擇【Local Security Policy】。中文為【本地安全性原則】,Win8 系統能夠控制台→【系統和安全】中找到【Log on as a service right】(中文為【信任電腦和使用者帳戶能夠執行委派】):
2.加入所需帳號,
假設使用WIndows Server Core版本號碼,因為沒有GUI能夠改動,也有可能你不能直接登入目標server用GUI操作(非core版本號碼)時。能夠在另外一些機器上實現配置:
步驟:
1. 開啟電腦管理器(compmgmt.msc)右鍵根資料夾。選擇【串連到還有一台電腦】,輸入server地址,
成功串連之後會變成。注意【電腦管理(本地)】 已經變成了【電腦管理(SQL-A)】:
2.在【服務和應用程式】節點能夠找到SQL Server組態管理員,然後就能夠進行前面所說的配置了。
建立域使用者作為服務帳號:
假設在域環境下,能夠在活動檔案夾server(Active Directory Server)上通過【Active Directory 管理中心】(Active Directory Administrative Center)上的【Active Directory 使用者和電腦】(Active Directory Users and Computers )工具加入使用者到域環境的機器上。
在建立時,使用者選項僅僅勾選就可以。除非特殊須要。否則不建議勾選【使用者下次登入須更改password】:
假設希望用於服務帳號的password逾時,建議使用Windows Server 2008出現的【託管服務帳號】(managed service accounts),這部分在興許文章介紹。
擴充閱讀:
配置 Windows 服務帳戶和許可權(http://msdn.microsoft.com/zh-cn/library/ms143504.aspx)
下一個:http://blog.csdn.net/dba_huangzj/article/details/37927319
Chapter 1 Securing Your Server and Network(1):選擇SQL Server業務經理