1.身份鑒別
1.1避免使用空密碼和弱口令
要求:應對登錄操作系統和數據庫系統的用戶進行身份標識和鑒別。
目的:操作系統和數據庫系統管理用戶身份鑒別信息應具有不易被冒用的特點,口令應有復雜度要求並定期更換。
參考操作步驟:
對用戶的屬性進行安全檢查,包括空密碼、密碼更新時間等。修改目前所有賬號的口令,確保口令達到至少12位長度,包括數字、字母、符號混排,無規律的方式。
打開SQL Server Management Studio管理界面,在左側展開“登錄名”,對 sa和其它登錄名逐一右鍵點擊查看屬性,勾選“強制實施密碼策略”。

1.2通訊協議加密
要求:當對服務器進行遠程管理時,應采取必要措施,防止鑒別信息在網絡傳輸過程中被竊聽。
目的:為了防止包括鑒別信息等敏感信息在網絡傳輸過程中被竊聽,應使用加密通訊協議,提高安全性。
參考操作步驟:
SQL Server配置管理器>>SQL Server網絡配置>>MSSQLSERVER的協議,右鍵點擊>>屬性>>標志
把“強行加密”(ForceEncryption)設為“是”。

2.訪問控制
2.1數據庫角色分配最低權限
要求:應根據管理用戶的角色分配權限,實現管理用戶的權限分離,僅授予管理用戶所需的最小權限。
目的:根據用戶的業務需要,配置其所需的最小權限。
參考操作步驟:
在“SQL Server管理器”>>“安全性”中,選中每個登陸用戶,在右鍵菜單中選擇“屬性”,查看每個登陸用戶的角色和權限,查看是否是該用戶所需的最小權限。
1、更改數據庫屬性,取消業務數據庫帳號不需要的服務器角色;
2、更改數據庫屬性,取消業務數據庫帳號不需要的“數據庫訪問許可”和“數據庫角色中允許”中不需要的角色。

2.2限制guest賬戶對數據庫的訪問
目的:取消guest賬戶對master和tempdb之外的數據庫的訪問權限。
參考配置操作:
方法一:打SQL Server管理界面,在左側展開除了master和tempdb之外的所有數據庫>>安全性>>用戶,刪除guest賬戶。
方法二:用命令去除guest賬戶對指定數據庫的訪問權限:
use 數據庫名
exec sp_revokedbaccess guest

2.3設置身份認證
要求:應實現操作系統和數據庫系統特權用戶的權限分離。
目的:防止操作系統用戶對SQL Server數據庫進行非授權管理。
參考配置操作:
1.展開服務器組,右鍵單擊服務器->在彈出的右鍵菜單中單擊“屬性”,在“安全性”選項卡中選擇“服務器身份驗證”認證方式為“SQL Server和Windows身份驗證模式”。
2.在“SQL Server管理器”-〉“安全性”中,選擇賬號“BUILTIN\Administrators”,右擊選擇“屬性”,更改“狀態”設置“拒絕允許連接到數據庫引擎”和“禁用登錄”。


2.4刪除或鎖定多余賬號
要求:應及時刪除多余的、過期的賬戶,避免共享賬戶的存在。
目的:刪除系統不需要的帳號,減少系統安全隱患。
參考配置操作:
SQL Server管理器->安全性->登錄,詢問數據庫管理員每個賬戶的用途,查看是否存在多余的、過期的賬戶,點右鍵可選擇刪除。
3.安全審計
3.1啟用日志記錄功能
要求:審計范圍應覆蓋到服務器和重要客戶端上的每個操作系統用戶和數據庫用戶。
目的:數據庫應配置日志功能,對用戶登錄進行記錄,記錄內容包括用戶登錄使用的賬號、登錄是否成功、登錄時間以及遠程登錄時用戶使用的IP 地址。
參考配置操作:
1、在“SQL Server管理器”->右鍵單擊服務器->單擊“屬性”->“安全性”,選擇每個登錄的“審核級別”為“失敗和成功的登錄”。
2、詢問數據庫管理員,是否采取第三方工具或其他措施增強SQL Server的日志功能,如果有則查看這些工具記錄的審計記錄是否符合等級保護的安全審計要求。

3.2設置日志目錄權限
目的:限制日志所在目錄的權限,防止對日志文件的非授權訪問。

4.資源控制
4.1設置連接協議和監聽的IP范圍
要求:應通過設定終端接入方式、網絡地址范圍等條件限制終端登錄。
目的:設定SQL Server允許的連接協議,以及TCP/IP協議中監聽端口時綁定的IP地址。限制不必要的遠程客戶端訪問到數據庫資源。
參考配置操作:
1、 從開始菜單打開SQL Server配置管理器,展開“SQL SERVER 2008網絡配置>>SQL SERVER的協議,在右側將不需要的協議禁用,如:VIA和Share Memory方式可能一般不需要使用。
在以上界面雙擊“TCP/IP”協議>>IP地址,如有不必要監聽的IP項,則把“活動”屬性設置為“否”。如:訪問數據庫的應用程序也裝在該服務器上,則只需要監聽127.0.0.1即可,其它IP不需要監聽。在應用程序中配置為使用127.0.0.1訪問數據庫。

4.2連接超時
要求:應根據安全策略設置登錄終端的操作超時鎖定。
目的:設置連接超時功能,提高數據庫的性能。
參考配置操作:
1.從開始菜單打開SQL Server管理界面,再展開菜單欄的“工具”>>“選項”>>“設計器”>>“Analysis Services設計器”,在“連接”下的“連接超時值”輸入合適的數字(默認值15)。
2.在SQL Server管理界面左側,右鍵點擊服務器名稱>>屬性>>高級,在右側找到“遠程登錄超時值”,設置為合適的數字,
選項—連接屬性—將連接超時值設置為一個較大的數字(默認值20)。

4.3限制遠程用戶連接數量
要求:應限制單個用戶對系統資源的最大或最小使用限度。
目的:限制遠程用戶連接數量,確保數據庫服務器穩定運行,提升性能。
參考配置操作:
在SQL Server管理界面左側,右鍵點擊服務器名稱>>屬性>>連接,設置“並發最大連接數”,如2500。

4.4內存限制
目的:使運行在服務器上的應用程序都能達到比較滿意的效果,同時也為了能給其他應用程序保留足夠的內存。
參考配置操作:
在SQL Server管理界面左側,右鍵點擊服務器名稱>>屬性>>內存,設置最小值和最大值在一個范圍段內,如我們將它設置成最小0MB,最大為物理內存的80%左右。

5.最佳經驗實踐
5.1隱藏實例
目的:防止數據庫系統的相關信息泄露。
參考配置操作:
在SQL Server配置管理器中選擇“SQL Server 2005網絡配置”中的“MSSQLSERVER的協議”,右鍵選擇“屬性”,選中其中的“隱藏實例”選項。

5.2修改默認通信端口
目的:修改默認通信端口,防止黑客通過1433登錄數據庫服務器。
參考配置操作:
在SQL Server配置管理器中選擇“SQL Server 2005網絡配置”中的“MSSQLSERVER的協議”,選中“TCP/IP”,右鍵選擇“屬性”,在TCP/IP屬性對話框,選擇“IP地址”選項卡,修改所有“TCP端口”右邊的文本欄為新的要修改的端口號(默認端口號為1433),然后重啟SQL Server生效。

