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