標籤:
原文: Chapter 1 Securing Your Server and Network(1):選擇SQL Server運行帳號
原文出處: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是非常重要的,本系列文章只關注安全性方面。
選擇合適的帳號之所以非常重要,其中一個原因是如果許可權不恰當,使用者(用戶端)可以通過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. 當修改了帳號之後,點擊【確定】按鈕,會提示需要重啟SQL Server服務,點擊【是】,然後重啟服務,由於修改運行帳號必須重啟服務,所以如果在正式環境下,需要謹慎,並且計劃性地修改。
7. 至此,我們示範了如何修改SQL Server的運行帳號。接下來將介紹一些原理及注意事項。
原理:
SQL Server服務繼承了底層作業系統(即Windows OS)上Windows帳號的許可權。它並不一定需要有所在機器上的管理員權限。只需要有對資料檔案/交易記錄檔、錯誤記錄檔檔案、備份檔案所在目錄的許可權和少量系統許可權即可。
如果在安裝SQL Server之後修改服務帳號,強烈建議使用SQL Server組態管理員實現,而不要用Windows 服務控制管理員,因為後者並不能很好地進行許可權管控。
在Windows Server 2008 R2中,在安裝SQL Server過程中預設使用虛擬帳號(Virtual Account,將在後續文章介紹)作為啟動帳號。如果在步驟5中選擇了【內建帳號】,不需要提供密碼,這些密碼由作業系統管理和預設。下面簡要介紹一下步驟5中的兩類帳號:
- Local System:這是一個擁有所在電腦上管理員權限的Windows 系統帳號,在網路中顯示為(<Domain>\<Machine>)形式,如果機器存在於域環境中,可以對這類帳號授予訪問網路資源的許可權。
- Network Service:這個帳號相對於Local System而言,有很多本機許可權限制,但是可以和Local System一樣訪問網路資源。
你可以選擇一個已經建立的Windows或域帳號,以全名形式((<Domain>\<Account>)作為運行帳號,但是要確保這個帳號沒有受到WIndows上的“密碼到期策略”影響,否者可能在系統運行了一段時間之後由於密碼到期而導致整個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可以修改,也有可能你不能直接登入目標伺服器用GUI操作(非core版本)時,可以在另外一些機器上實現配置:
步驟:
1. 開啟電腦管理器(compmgmt.msc)右鍵根目錄,選擇【串連到另一台電腦】,輸入伺服器位址,
成功串連之後會變成,注意【電腦管理(本地)】 已經變成了【電腦管理(SQL-A)】:
2.在【服務和應用程式】節點可以找到SQL Server組態管理員,然後就可以進行前面所說的配置了。
建立域使用者作為服務帳號:
如果在域環境下,可以在活動目錄伺服器(Active Directory Server)上通過【Active Directory 管理中心】(Active Directory Administrative Center)上的【Active Directory 使用者和電腦】(Active Directory Users and Computers )工具添加使用者到域環境的機器上。
在建立時,使用者選項只勾選即可,除非特殊需要,否則不建議勾選【使用者下次登入須更改密碼】:
如果希望用於服務帳號的密碼逾時,建議使用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運行帳號