為了提高服務器安全性,最有效的一個方法就是升級到SQL Server 2000 Service Pack 3a (SP3a)。另外,您還應該安裝所有已發布的安全更新。
2. 使用Microsoft基線安全性分析器(MBSA)來評估服務器的安全性
MBSA 是一個掃描多種Microsoft產品的不安全配置的工具,包括SQL Server和Microsoft SQL Server 2000 Desktop Engine(MSDE 2000)。它可以在本地運行,也可以通過網絡運行。該工具針對下面問題對SQL Server安裝進行檢測:
1) 過多的sysadmin固定服務器角色成員。
2) 授予sysadmin以外的其他角色創建CmdExec作業的權利。
3) 空的或簡單的密碼。
4) 脆弱的身份驗證模式。
5) 授予管理員組過多的權利。
6) SQL Server數據目錄中不正確的訪問控制表(ACL)。
7) 安裝文件中使用純文本的sa密碼。
8) 授予guest帳戶過多的權利。
9) 在同時是域控制器的系統中運行SQL Server。
10) 所有人(Everyone)組的不正確配置,提供對特定注冊表鍵的訪問。
11) SQL Server 服務帳戶的不正確配置。
12) 沒有安裝必要的服務包和安全更新。
Microsoft 提供 MBSA 的免費下載。
3. 使用Windows身份驗證模式
在任何可能的時候,您都應該對指向SQL Server的連接要求Windows身份驗證模式。它通過限制對Microsoft Windows用戶和域用戶帳戶的連接,保護SQL Server免受大部分Internet工具的侵害,而且,您的服務器也將從Windows安全增強機制中獲益,例如更強的身份驗證協議以及強制的密碼復雜性和過期時間。另外,憑證委派(在多台服務器間橋接憑證的能力)也只能在Windows身份驗證模式中使用。在客戶端,Windows身份驗證模式不再需要存儲密碼。存儲密碼是使用標准SQL Server登錄的應用程序的主要漏洞之一。要在SQL Server的Enterprise Manager安裝Windows身份驗證模式,請按下列步驟操作:
1)展開服務器組。
2)右鍵點擊服務器,然後點擊屬性。
3)在安全性選項卡的身份驗證中,點擊僅限Windows。
4. 隔離您的服務器,並定期備份
物理和邏輯上的隔離組成了SQL Server安全性的基礎。駐留數據庫的機器應該處於一個從物理形式上受到保護的地方,最好是一個上鎖的機房,配備有洪水檢測以及火災檢測及消防系統。數據庫應該安裝在企業內部網的安全區域中,不要直接連接到Internet。定期備份所有數據,並將副本保存在安全的站點外地點。
5. 分配一個強健的sa密碼
sa帳戶應該總擁有一個強健的密碼,即使在配置為要求 Windows 身份驗證的服務器上也該如此。這將保證在以後服務器被重新配置為混合模式身份驗證時,不會出現空白或脆弱的sa。
要分配sa密碼,請按下列步驟操作:
1) 展開服務器組,然後展開服務器。
2) 展開安全性,然後點擊登錄。
3) 在細節窗格中,右鍵點擊SA,然後點擊屬性。
4) 在密碼方框中,輸入新的密碼。
6. 限制 SQL Server服務的權限
SQL Server 2000和SQL Server Agent是作為Windows服務運行的。每個服務必須與一個Windows帳戶相關聯,並從這個帳戶中衍生出安全性上下文。SQL Server允許sa登錄的用戶(有時也包括其他用戶)來訪問操作系統特性。這些操作系統調用是由擁有服務器進程的帳戶的安全性上下文來創建的。如果服務器被攻破了,那麼這些操作系統調用可能被利用來向其他資源進行攻擊,只要所擁有的過程(SQL Server服務帳戶)可以對其進行訪問。因此,為SQL Server服務僅授予必要的權限是十分重要的。