1.使用健壯安全的密碼策略
很多數(shù)據(jù)庫(kù)帳號(hào)的密碼過于簡(jiǎn)單,這跟系統(tǒng)密碼過于簡(jiǎn)單是一個(gè)道理。對(duì)于sa更應(yīng)該注意,同時(shí)不要讓sa帳號(hào)的密碼寫于應(yīng)用程序或者腳本中。健壯的密碼是安全的第一步!SQL Server2000安裝的時(shí)候,如果是使用混合模式,那么就需要輸入sa的密碼,除非你確認(rèn)必須使用空密碼。這比以前的版本有所改進(jìn)。同時(shí)養(yǎng)成定期修改密碼的好習(xí)慣。數(shù)據(jù)庫(kù)管理員應(yīng)該定期查看是否有不符合密碼要求的帳號(hào)。
比如使用下面的SQL語句:
|
|
由于SQL Server不能更改sa用戶名稱,也不能刪除這個(gè)超級(jí)用戶,所以,我們必須對(duì)這個(gè)帳號(hào)進(jìn)行最強(qiáng)的保護(hù),當(dāng)然,包括使用一個(gè)非常強(qiáng)壯的密碼,最好不要在數(shù)據(jù)庫(kù)應(yīng)用中使用sa帳號(hào),只有當(dāng)沒有其它方法登錄到 SQL Server 實(shí)例(例如,當(dāng)其它系統(tǒng)管理員不可用或忘記了密碼)時(shí)才使用 sa。建議數(shù)據(jù)庫(kù)管理員新建立個(gè)擁有與sa一樣權(quán)限的超級(jí)用戶來管理數(shù)據(jù)庫(kù)。安全的帳號(hào)策略還包括不要讓管理員權(quán)限的帳號(hào)泛濫。
SQL Server的認(rèn)證模式有Windows身份認(rèn)證和混合身份認(rèn)證兩種。在任何可能的時(shí)候,您都應(yīng)該對(duì)指向SQL Server的連接要求Windows身份驗(yàn)證模式。
Windows認(rèn)證模式比混合模式更優(yōu)越,原因在以下:
1) 它通過限制對(duì)Microsoft Windows用戶和域用戶帳戶的連接,保護(hù)SQL Server免受大部分Internet工具的侵害。
2) 服務(wù)器將從Windows安全增強(qiáng)機(jī)制中獲益,例如更強(qiáng)的身份驗(yàn)證協(xié)議以及強(qiáng)制的密碼復(fù)雜性和過期時(shí)間 。
3) 使用Windows認(rèn)證,不需要將密碼存放在連接字符串中。存儲(chǔ)密碼是使用標(biāo)準(zhǔn)SQL Server登錄的應(yīng)用程序的主要漏洞之一。
4) Windows認(rèn)證意味著你只需要將密碼存放在一個(gè)地方。
要在SQL Server的Enterprise Manager安裝Windows身份驗(yàn)證模式,請(qǐng)按下列步驟操作:
|
SQL Server的默認(rèn)安裝將監(jiān)視TCP端口1433以及UDP端口1434。配置您的防火墻來過濾掉到達(dá)這些端口的數(shù)據(jù)包。而且,還應(yīng)該在防火墻上阻止與指定實(shí)例相關(guān)聯(lián)的其他端口。
4.審核指向SQL Server的連接
SQL Server可以記錄事件信息,用于系統(tǒng)管理員的審查。至少您應(yīng)該記錄失敗的SQL Server連接嘗試,并定期地查看這個(gè)日志。在可能的情況下,不要將這些日志和數(shù)據(jù)文件保存在同一個(gè)硬盤上。
要在SQL Server的Enterprise Manager中審核失敗連接,請(qǐng)按下列步驟操作:
|
對(duì)存儲(chǔ)過程進(jìn)行大手術(shù),并且對(duì)帳號(hào)調(diào)用擴(kuò)展存儲(chǔ)過程的權(quán)限要慎重。其實(shí)在多數(shù)應(yīng)用中根本用不到多少系統(tǒng)的存儲(chǔ)過程,而SQL Server的這么多系統(tǒng)存儲(chǔ)過程只是用來適應(yīng)廣大用戶需求的,所以請(qǐng)刪除不必要的存儲(chǔ)過程,因?yàn)橛行┫到y(tǒng)的存儲(chǔ)過程能很容易地被人利用起來提升權(quán)限或進(jìn)行破壞。如果你不需要擴(kuò)展存儲(chǔ)過程xp_cmdshell請(qǐng)把它去掉。使用這個(gè)SQL語句:
|
|
|
|
6.使用視圖和存儲(chǔ)程序以分配給用戶訪問數(shù)據(jù)的權(quán)利
使用視圖和存儲(chǔ)程序以分配給用戶訪問數(shù)據(jù)的權(quán)利,而不是讓用戶編寫一些直接訪問表格的特別查詢語句。通過這種方式,你無需在表格中將訪問權(quán)利分配給用戶。視圖和存儲(chǔ)程序也可以限制查看的數(shù)據(jù)。例如,如果你的雇員表格包含一些秘密的工資信息,你可以建立一個(gè)省略了工資欄的視圖。
7.使用最安全的文件系統(tǒng)
NTFS是最適合安裝SQL Server的文件系統(tǒng)。它比FAT文件系統(tǒng)更穩(wěn)定且更容易恢復(fù)。而且它還包括一些安全選項(xiàng),例如文件和目錄ACL以及文件加密(EFS)。在安裝過程中,如果偵測(cè)到 NTFS,SQL Server將在注冊(cè)表鍵和文件上設(shè)置合適的ACL。不應(yīng)該去更改這些權(quán)限。
通過EFS,數(shù)據(jù)庫(kù)文件將在運(yùn)行SQL Server的帳戶身份下進(jìn)行加密。只有這個(gè)帳戶才能解密這些文件。如果您需要更改運(yùn)行SQL Server的帳戶,那么您必須首先在舊帳戶下解密這些文件,然后在新帳戶下重新進(jìn)行加密。
8.安裝升級(jí)包
為了提高服務(wù)器安全性,最有效的一個(gè)方法就是升級(jí)到SQL Server 2000 Service Pack 3a (SP3a)。另外,您還應(yīng)該安裝所有已發(fā)布的安全更新。
9.使用Microsoft基線安全性分析器(MBSA)來評(píng)估服務(wù)器的安全性
MBSA 是一個(gè)掃描多種Microsoft產(chǎn)品的不安全配置的工具,包括SQL Server和Microsoft SQL Server 2000 Desktop Engine(MSDE 2000)。它可以在本地運(yùn)行,也可以通過網(wǎng)絡(luò)運(yùn)行。該工具針對(duì)下面問題對(duì)SQL Server安裝進(jìn)行檢測(cè):
|
10.其他安全策略
另外,在安裝SQL Server時(shí),還有一些技巧值得注意。
使用TCP/IP作為SQL Server的網(wǎng)絡(luò)庫(kù)。這是微軟推薦使用的庫(kù),是經(jīng)受考驗(yàn)的。如果服務(wù)器將與網(wǎng)絡(luò)連接,使用非標(biāo)準(zhǔn)端口會(huì)被一些別有用心的人破壞。
使用一個(gè)低級(jí)別的帳號(hào)來運(yùn)行SQL Server,而不是一個(gè)管理帳號(hào)。這對(duì)系統(tǒng)崩潰的時(shí)候起著保護(hù)作用。
不要允許未獲得安全許可的客人訪問任何包括安全數(shù)據(jù)的數(shù)據(jù)庫(kù)。
將數(shù)據(jù)庫(kù)保護(hù)于一個(gè)“被鎖的房間”。記住,很多騷擾都是來自于內(nèi)部的人。


