尹 慧
隨著人類步入信息時(shí)代,面對浩如煙海的各類信息,如何快速、準(zhǔn)確、安全地獲取學(xué)校相關(guān)信息,妥善管理保存學(xué)校有價(jià)值信息,對檔案工作提出新的要求。檔案數(shù)據(jù)庫系統(tǒng)在實(shí)現(xiàn)檔案網(wǎng)絡(luò)化管理和數(shù)字化管理的過程中,扮演著數(shù)據(jù)中心的核心作用。檔案信息的錄入、修改、查詢等工作都是對存儲于數(shù)據(jù)庫里的數(shù)據(jù)信息進(jìn)行的處理。因此,如何將檔案數(shù)據(jù)庫打造成銅墻鐵壁似的安全系統(tǒng),就成了所有檔案系統(tǒng)網(wǎng)絡(luò)工作者必須要面對和解決的問題。這里以SQL Server為例,對數(shù)據(jù)庫的安全配置以及一些相關(guān)的使用問題做一簡介。
1 SQL Server 2000數(shù)據(jù)庫安全配置前期工作
在進(jìn)行SQL Server 2000數(shù)據(jù)庫的安全配置之前,必須對操作系統(tǒng)(如Windows XP)進(jìn)行必要的安全配置,然后將安裝的SQL Server 2000進(jìn)行升級,打上SQL Server最新的安全補(bǔ)丁。
2 使用安全的密碼策略
對于SQL Server 2000來說,一個(gè)復(fù)雜安全的密碼是數(shù)據(jù)庫系統(tǒng)安全的第一步。因此,數(shù)據(jù)庫賬號的密碼不能過于簡單,同時(shí)不要讓數(shù)據(jù)庫賬號的密碼寫于應(yīng)用程序或者腳本中,健壯的密碼是安全的第一步。
在對SQL Server 2000進(jìn)行安裝的時(shí)候,如果是使用混合模式,那么最好輸入SA賬號的密碼,而且是比較復(fù)雜的。在以后的維護(hù)中,要定期修改密碼。對于數(shù)據(jù)庫管理員來說,應(yīng)該定期查看是否有不符合密碼要求的賬號出現(xiàn)。比如使用下面的SQL語句:
Use master
Select name,Password from syslogins where password is null
修改SA賬號密碼,按步驟操作:1)展開服務(wù)器組,然后展開服務(wù)器;2)展開安全性,然后點(diǎn)擊登錄;3)在細(xì)節(jié)窗格中,右鍵點(diǎn)擊SA,然后點(diǎn)擊屬性;4)在密碼方框中輸入新的密碼。
3 使用安全的賬號策略
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ù)授予必要的權(quán)限是十分重要的。由于SQL Server系統(tǒng)不能更改SA用戶名稱,也不能刪除這個(gè)超級用戶,所以必須對這個(gè)賬號進(jìn)行最強(qiáng)的保護(hù)。當(dāng)然,包括使用一個(gè)非常強(qiáng)壯的密碼,最好不要在數(shù)據(jù)庫的應(yīng)用中使用SA賬號。對于數(shù)據(jù)庫管理員來說,應(yīng)該新建立一個(gè)擁有與SA賬號一樣權(quán)限的超級用戶來對數(shù)據(jù)庫進(jìn)行管理。安全的賬號策略還包括不要讓管理員權(quán)限的賬號泛濫。
很多主機(jī)使用數(shù)據(jù)庫應(yīng)用只是用來做查詢、修改等簡單功能的,請根據(jù)實(shí)際需要分配賬號,并賦予僅僅能夠滿足應(yīng)用要求和需要的權(quán)限。比如,只要查詢功能的,那么就使用一個(gè)簡單的public賬號能夠select就可以了。
4 對擴(kuò)展存儲過程進(jìn)行有效管理
一般來說,在大多數(shù)情況下,數(shù)據(jù)庫信息應(yīng)用不需要應(yīng)用到較多的存儲過程,SQL Server較多的系統(tǒng)存儲過程實(shí)際上對于數(shù)據(jù)庫系統(tǒng)留有安全隱患。所以應(yīng)盡可能刪除一些不必要的存儲過程,因?yàn)橛行┫到y(tǒng)的存儲過程能很容易被人利用起來提升權(quán)限,從而進(jìn)行破壞。
如果不需要擴(kuò)展存儲過程xp_cmdshell就把它去掉,使用下面的SQL語句:
Use master
sp_dropextendedproc ‘xp_cmdshell
xp_cmdshell是進(jìn)入操作系統(tǒng)的最佳捷徑,是數(shù)據(jù)庫留給操作系統(tǒng)的一個(gè)大后門。如果需要這個(gè)存儲過程,用下面的語句也可以恢復(fù)過來:
sp_addextendedproc ‘xp_cmdshell, ‘xpsql70.dll
審核數(shù)據(jù)庫登錄事件的“失敗和成功”,在實(shí)例屬性中選擇“安全性”,將其中的審核級別選定為全部,這樣在數(shù)據(jù)庫系統(tǒng)和操作系統(tǒng)日志里面,就詳細(xì)記錄了所有賬號的登錄事件。 對于數(shù)據(jù)庫管理人員來說,需要定期查看SQL Server日志,檢查是否有可疑的登錄事件發(fā)生。
5 在防火墻上禁用SQL Server端口
SQL Server的默認(rèn)安裝將監(jiān)視TCP端口1433以及UDP端口1434。配置操作系統(tǒng)的防火墻來過濾掉到達(dá)這些端口的數(shù)據(jù)包。而且,還應(yīng)該在防火墻上阻止與指定實(shí)例相關(guān)聯(lián)的其他端口。
6 修改TCP/IP使用的端口
在實(shí)例屬性中選擇網(wǎng)絡(luò)配置中的TCP/IP協(xié)議的屬性,將TCP/IP使用的默認(rèn)端口1433變?yōu)槠渌丝凇?/p>
7 使用最安全的文件系統(tǒng)
NTFS最適合安裝SQL Server的文件系統(tǒng),它比FAT文件系統(tǒng)更穩(wěn)定且更容易恢復(fù),而且它還包括一些安全選項(xiàng),例如文件和目錄ACL以及文件加密(EFS)。在安裝過程中,如果偵測到NTFS,SQL Server將在注冊表鍵和文件上設(shè)置合適的ACL,但不去更改這些權(quán)限。
通過EFS,數(shù)據(jù)庫文件將在運(yùn)行SQL Server的賬戶身份下進(jìn)行加密。只有這個(gè)賬戶才能解密這些文件,如果需要更改運(yùn)行SQL Server的賬戶,那么必須首先在舊賬戶下解密這些文件,然后在新賬戶下重新進(jìn)行加密。
8 審核指向SQL Server的連接
SQL Server可以記錄事件信息,用于系統(tǒng)管理員的審查。至少應(yīng)該記錄失敗的SQL Server連接嘗試,并定期查看這個(gè)日志。在可能的情況下,不要將這些日志和數(shù)據(jù)文件保存在同一個(gè)硬盤上。
要在SQL Server的Enterprise Manager中審核失敗連接,按步驟操作:1)展開服務(wù)器組;2)右鍵點(diǎn)擊服務(wù)器,然后點(diǎn)擊屬性;3)在安全性選項(xiàng)卡的審核等級中點(diǎn)擊失敗;4)要使這個(gè)設(shè)置生效,必須停止并重新啟動服務(wù)器。
9 使用協(xié)議加密
SQL Server 2000使用Tabular Data Stream協(xié)議來進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)交換,如果不加密的話,所有的網(wǎng)絡(luò)傳輸都是明文的,包括密碼、數(shù)據(jù)庫內(nèi)容等。這是一個(gè)很大的安全威脅,能被人在網(wǎng)絡(luò)中截獲到他們需要的東西,包括數(shù)據(jù)庫賬號和密碼。所以,在條件容許情況下,最好使用SSL來加密協(xié)議,當(dāng)然這需要一個(gè)證書來支持。
以上是對當(dāng)前SQL Server處于網(wǎng)絡(luò)環(huán)境下可能面臨的威脅及安全隱患進(jìn)行安全設(shè)置的簡介。維護(hù)系統(tǒng)的安全是一項(xiàng)長期的工作,需要不斷對數(shù)據(jù)庫系統(tǒng)進(jìn)行升級,加強(qiáng)技術(shù)性安全措施。
參考文獻(xiàn)
[1]劉啟原,劉怡.數(shù)據(jù)庫與信息系統(tǒng)的安全[M].北京:科學(xué)出版社,2000
[2]李海泉,李健.計(jì)算機(jī)網(wǎng)絡(luò)安全與加密技術(shù)[M].北京:科學(xué)出版社,2001
[3]曹效陽.淺談SQL Server中的安全策略[J].現(xiàn)代計(jì)算機(jī),2006(1)
[4]劉瑜,陳鐵英.Microsoft SQL Server數(shù)據(jù)庫的安全策略及實(shí)現(xiàn)方法[J].計(jì)算機(jī)工程與設(shè)計(jì),2003,24(1):68-71