1.安裝最新的服務(wù)包
為了提高SQL Server數(shù)據(jù)庫安全性,最有效的一個(gè)方法就是升級到 SQL Server 2000 Service Pack 3a (SP3a)。要下載 SP3a,請?jiān)L問SQL Server 2000 SP3a 頁面。另外,您還應(yīng)該安裝所有已發(fā)布的安全更新。要訂閱新安全更新的通知,請?jiān)L問產(chǎn)品安全通知頁面。
2.使用 Microsoft 基線安全性分析器(MBSA)來評估服務(wù)器的安全性
MBSA 是一個(gè)掃描多種 Microsoft 產(chǎn)品的不安全配置的工具,包括 SQL Server 和 Microsoft SQL Server 2000 Desktop Engine (MSDE 2000)。它可以在本地運(yùn)行,也可以通過網(wǎng)絡(luò)運(yùn)行。該工具針對下面問題對 SQL Server 安裝進(jìn)行檢測:
過多的sysadmin固定服務(wù)器角色成員。
授予sysadmin以外的其他角色創(chuàng)建 CmdExec 作業(yè)的權(quán)利。
空的或簡單的密碼。
脆弱的身份驗(yàn)證模式。
授予管理員組過多的權(quán)利。
SQL Server數(shù)據(jù)目錄中不正確的訪問控制表(ACL)。
安裝文件中使用純文本的sa密碼。
授予guest帳戶過多的權(quán)利。
在同時(shí)是域控制器的系統(tǒng)中運(yùn)行SQL Server。
所有人(Everyone)組的不正確配置,提供對特定注冊表鍵的訪問。
SQL Server 服務(wù)帳戶的不正確配置。
沒有安裝必要的服務(wù)包和安全更新。
3.使用 Windows 身份驗(yàn)證模式
在任何可能的時(shí)候,您都應(yīng)該對指向 SQL Server 的連接要求 Windows 身份驗(yàn)證模式。它通過限制對Microsoft Windows?用戶和域用戶帳戶的連接,保護(hù) SQL Server 免受大部分 Internet 的工具的侵害,。而且,您的服務(wù)器也將從 Windows 安全增強(qiáng)機(jī)制中獲益,例如更強(qiáng)的身份驗(yàn)證協(xié)議以及強(qiáng)制的密碼復(fù)雜性和過期時(shí)間。另外,憑證委派(在多臺服務(wù)器間橋接憑證的能力)也只能在 Windows 身份驗(yàn)證模式中使用。在客戶端,Windows 身份驗(yàn)證模式不再需要存儲密碼。存儲密碼是使用標(biāo)準(zhǔn) SQL Server 登錄的應(yīng)用程序的主要漏洞之一。要在 SQL Server 的 EntERPrise Manager 安裝 Windows 身份驗(yàn)證模式,請按下列步驟操作:
◆展開服務(wù)器組。
◆右鍵點(diǎn)擊服務(wù)器,然后點(diǎn)擊屬性。
◆在安全性選項(xiàng)卡的身份驗(yàn)證中,點(diǎn)擊僅限 Windows。
4.隔離您的服務(wù)器,并定期備份
物理和邏輯上的隔離組成 了SQL Server 安全性的基礎(chǔ)。駐留數(shù)據(jù)庫的機(jī)器應(yīng)該處于一個(gè)從物理形式上受到保護(hù)的地方,最好是一個(gè)上鎖的機(jī)房,配備有洪水檢測以及火災(zāi)檢測/消防系統(tǒng)。數(shù)據(jù)庫應(yīng)該安裝在企業(yè)內(nèi)部網(wǎng)的安全區(qū)域中,不要直接連接到 Internet。定期備份所有數(shù)據(jù),并將副本保存在安全的站點(diǎn)外地點(diǎn)。有關(guān)備份過程和其他操作性最佳實(shí)踐的指南,請參閱SQL Server 2000操作指南。
5.分配一個(gè)強(qiáng)健的sa密碼
sa帳戶應(yīng)該總擁有一個(gè)強(qiáng)健的密碼,即使在配置為要求 Windows 身份驗(yàn)證的服務(wù)器上也該如此。這將保證在以后服務(wù)器被重新配置為混合模式身份驗(yàn)證時(shí),不會出現(xiàn)空白或脆弱的sa。
◆要分配sa密碼,請按下列步驟操作:
◆展開服務(wù)器組,然后展開服務(wù)器。
◆展開安全性,然后點(diǎn)擊登錄。
◆在細(xì)節(jié)窗格中,右鍵點(diǎn)擊SA,然后點(diǎn)擊屬性。
◆在密碼方框中,輸入新的密碼。
6.限制 SQL Server服務(wù)的權(quán)限
SQL Server 2000 和 SQL Server Agent 是作為 Windows 服務(wù)運(yùn)行的。每個(gè)服務(wù)必須與一個(gè) Windows 帳戶相關(guān)聯(lián),并從這個(gè)帳戶中衍生出安全性上下文。SQL Server允許sa 登錄的用戶(有時(shí)也包括其他用戶)來訪問操作系統(tǒng)特性。這些操作系統(tǒng)調(diào)用是由擁有服務(wù)器進(jìn)程的帳戶的安全性上下文來創(chuàng)建的。如果服務(wù)器被攻破了,那么這些操作系統(tǒng)調(diào)用可能被利用來向其他資源進(jìn)行攻擊,只要所擁有的過程(SQL Server服務(wù)帳戶)可以對其進(jìn)行訪問。因此,為 SQL Server 服務(wù)僅授予必要的權(quán)限是十分重要的。
我們推薦您采用下列設(shè)置:SQL Server Engine/MSSQLServer
如果擁有指定實(shí)例,那么它們應(yīng)該被命名為MSSQL$InstanceName。作為具有一般用戶權(quán)限的 Windows 域用戶帳戶運(yùn)行。不要作為本地系統(tǒng)、本地管理員或域管理員帳戶來運(yùn)行。
SQL Server Agent Service/SQLServerAgent
如果您的環(huán)境中不需要,請禁用該服務(wù);否則請作為具有一般用戶權(quán)限的Windows域用戶帳戶運(yùn)行。不要作為本地系統(tǒng)、本地管理員或域管理員帳戶來運(yùn)行。
重點(diǎn): 如果下列條件之一成立,那么 SQL Server Agent 將需要本地 Windows管理員權(quán)限:
SQL Server Agent 使用標(biāo)準(zhǔn)的 SQL Server 身份驗(yàn)證連接到SQL Server(不推薦)。
SQL Server Agent 使用多服務(wù)器管理主服務(wù)器(MSX)帳戶,而該帳戶使用標(biāo)準(zhǔn) SQL Server 身份驗(yàn)證進(jìn)行連接。
SQL Server Agent 運(yùn)行非sysadmin固定服務(wù)器角色成員所擁有的 Microsoft ActiveX?腳本或 CmdExec 作業(yè)。
如果您需要更改與 SQL Server服務(wù)相關(guān)聯(lián)的帳戶,請使用 SQL Server Enterprise Manager。Enterprise Manager 將為 SQL Server 所使用的文件和注冊表鍵設(shè)置合適的權(quán)限。不要使用 Microsoft 管理控制臺的"服務(wù)"(在控制面板中)來更改這些帳戶,因?yàn)檫@樣需要手動(dòng)地調(diào)制大量的注冊表鍵和NTFS文件系統(tǒng)權(quán)限以及Micorsoft Windows用戶權(quán)限。帳戶信息的更改將在下一次服務(wù)啟動(dòng)時(shí)生效。如果您需要更改與 SQL Server 以及 SQL Server Agent 相關(guān)聯(lián)的帳戶,那么您必須使用 Enterprise Manager 分別對兩個(gè)服務(wù)進(jìn)行更改。
7.在防火墻上禁用端口,提高 SQL Server安全性
SQL Server 的默認(rèn)安裝將監(jiān)視 TCP 端口 1433 以及UDP端口 1434。配置您的防火墻來過濾掉到達(dá)這些端口的數(shù)據(jù)包。而且,還應(yīng)該在防火墻上阻止與指定實(shí)例相關(guān)聯(lián)的其他端口。
8.使用最安全的文件系統(tǒng)
NTFS 是最適合安裝 SQL Server 的文件系統(tǒng)。它比 FAT 文件系統(tǒng)更穩(wěn)定且更容易恢復(fù)。而且它還包括一些安全選項(xiàng),例如文件和目錄 ACL 以及文件加密(EFS)。在安裝過程中,如果偵測到 NTFS,SQL Server 將在注冊表鍵和文件上設(shè)置合適的 ACL。不應(yīng)該去更改這些權(quán)限。通過 EFS,數(shù)據(jù)庫文件將在運(yùn)行 SQL Server 的帳戶身份下進(jìn)行加密。只有這個(gè)帳戶才能解密這些文件。如果您需要更改運(yùn)行 SQL Server 的帳戶,那么您必須首先在舊帳戶下解密這些文件,然后在新帳戶下重新進(jìn)行加密。
9.刪除或保護(hù)舊的安裝文件
SQL Server 安裝文件可能包含由純文本或簡單加密的憑證和其他在安裝過程中記錄的敏感配置信息。這些日志文件的保存位置取決于所安裝的SQL Server版本。在 SQL Server 2000 中,下列文件可能受到影響:默認(rèn)安裝時(shí):\Program Files\Microsoft SQL Server\MSSQL\Install文件夾中,以及指定實(shí)例的:\Program Files\Microsoft SQL Server\ MSSQL$\Install文件夾中的sqlstp.log, sqlsp.log和setup.iss
如果當(dāng)前的系統(tǒng)是從 SQL Server 7.0 安裝升級而來的,那么還應(yīng)該檢查下列文件:%Windir% 文件夾中的setup.iss以及Windows Temp文件夾中的sqlsp.log。Microsoft發(fā)布了一個(gè)免費(fèi)的實(shí)用工具 Killpwd,它將從您的系統(tǒng)中找到并刪除這些密碼。
10.審核指向 SQL Server 的連接
SQL Server 可以記錄事件信息,用于系統(tǒng)管理員的審查。至少您應(yīng)該記錄失敗的 SQL Server 連接嘗試,并定期地查看這個(gè)日志。在可能的情況下,不要將這些日志和數(shù)據(jù)文件保存在同一個(gè)硬盤上。要在 SQL Server 的 Enterprise Manager 中審核失敗連接,請按下列步驟操作:
◆展開服務(wù)器組。
◆右鍵點(diǎn)擊服務(wù)器,然后點(diǎn)擊屬性。
◆在安全性選項(xiàng)卡的審核等級中,點(diǎn)擊失敗。
◆要使這個(gè)設(shè)置生效,您必須停止并重新啟動(dòng)服務(wù)器。