【摘要】SQLServer是一種數(shù)據(jù)庫(kù)管理系統(tǒng),它是為了分布式客戶機(jī)/服務(wù)器所設(shè)計(jì)的,是一種高性能的數(shù)據(jù)庫(kù)管理系統(tǒng)。由于SQLServer的應(yīng)用非常廣泛,如何保證SQLServer數(shù)據(jù)庫(kù)應(yīng)用程序的安全問題成為一個(gè)技術(shù)研究方向。本文深入淺出地介紹SQLServer數(shù)據(jù)庫(kù),分析SQLServer數(shù)據(jù)庫(kù)的安全機(jī)制,介紹SQLServer有哪些安全設(shè)置及其如何部署配置。
【關(guān)鍵詞】SQLServer,數(shù)據(jù)庫(kù),安全機(jī)制
1引言
數(shù)據(jù)庫(kù)是ERP系統(tǒng)、電子商務(wù)系統(tǒng)及其重要商業(yè)系統(tǒng)的基礎(chǔ)。所有上層的界面展現(xiàn)都離不開數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)一旦遭到破壞與安全攻擊,對(duì)整個(gè)外圍系統(tǒng)的使用影響是巨大的,甚至是毀滅性的。SQLServer作為最受歡迎的數(shù)據(jù)庫(kù)系統(tǒng)之一,自己有層層的安全保護(hù)機(jī)制來保護(hù)數(shù)據(jù)庫(kù)中數(shù)據(jù)的安全。
2簡(jiǎn)介
2.1SQLServer數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù),即電子化的文件柜。它是各種電子文件的存儲(chǔ)區(qū),將各種數(shù)據(jù)以一定的方式存儲(chǔ)在一起,并提供外部訪問的接口,如增加、刪除、更新、查看等操作。
SQLServer數(shù)據(jù)庫(kù)是微軟公司的一款關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)。它專門為分布式客戶機(jī)/服務(wù)器計(jì)算所設(shè)計(jì)的一個(gè)出眾的數(shù)據(jù)庫(kù)管理平臺(tái)。它的優(yōu)勢(shì)是可擴(kuò)展性,高性能管理,支持堆成多處理結(jié)構(gòu),ODBC和存儲(chǔ)過程,強(qiáng)壯的事物處理能力,支持SQL語句。其中SQL語句可以執(zhí)行如從數(shù)據(jù)庫(kù)中提取數(shù)據(jù),更新、刪除數(shù)據(jù)庫(kù)中的數(shù)據(jù)等等各種各樣的操作,可以用來完成幾乎所有的數(shù)據(jù)庫(kù)操作。
2.2數(shù)據(jù)庫(kù)安全
本文主要是針對(duì)數(shù)據(jù)而言的,是指保護(hù)數(shù)據(jù)庫(kù)防止黑客入侵?jǐn)?shù)據(jù)庫(kù)盜取資料、防止對(duì)數(shù)據(jù)庫(kù)信息進(jìn)行非法更改、破壞數(shù)據(jù)。對(duì)于數(shù)據(jù)庫(kù)系統(tǒng)的安全主要要求有三點(diǎn):數(shù)據(jù)完整性、數(shù)據(jù)保密性和數(shù)據(jù)可用性。如圖1所示。
數(shù)據(jù)完整性即數(shù)據(jù)邏輯完整性,包括數(shù)據(jù)的操作完整性和語義完整性。操作完整性指的是在并發(fā)事務(wù)中能夠保證數(shù)據(jù)的一致性。語義完整性指的是存取操作時(shí)保證邏輯上的完整性約束。
數(shù)據(jù)保密性要求對(duì)訪問用戶進(jìn)行安全授權(quán),不同權(quán)限的用戶訪問數(shù)據(jù)庫(kù)的操作等級(jí)不同。數(shù)據(jù)保密性還會(huì)防止數(shù)據(jù)庫(kù)中的數(shù)據(jù)不被非法獲取及其破壞,保護(hù)數(shù)據(jù)只能被授權(quán)用戶進(jìn)行正常訪問,同時(shí)還會(huì)對(duì)授權(quán)的用戶進(jìn)行跟蹤和監(jiān)察。
數(shù)據(jù)可用性指的是它不應(yīng)該拒絕安全授權(quán)用戶的正常訪問。
3數(shù)據(jù)庫(kù)面臨的安全威脅
影響數(shù)據(jù)庫(kù)安全的威脅有很多,如操作系統(tǒng)本身被非法侵入也會(huì)導(dǎo)致數(shù)據(jù)庫(kù)存在安全隱患。本文重點(diǎn)分析數(shù)據(jù)庫(kù)本身存在的安全威脅,不考慮操作系統(tǒng)及其硬件損壞威脅。數(shù)據(jù)庫(kù)面臨的安全威脅主要有身份驗(yàn)證方案薄弱、拒絕服務(wù)DOS和數(shù)據(jù)庫(kù)通信協(xié)議漏洞。如圖2所示。
身份驗(yàn)證方案薄弱。如果登錄數(shù)據(jù)庫(kù)的身份驗(yàn)證方案比較薄弱,則黑客可以很多方式獲取到授權(quán)憑證,如通過枚舉用戶名/密碼的方式猜測(cè)到用戶授權(quán),進(jìn)行正常的數(shù)據(jù)庫(kù)訪問。
拒絕服務(wù)DOS指的是正常用戶登錄服務(wù)器后,服務(wù)器提示拒絕訪問,使得數(shù)據(jù)庫(kù)不具備數(shù)據(jù)可用性。常見的拒絕服務(wù)攻擊技巧包括資源過載、數(shù)據(jù)破壞、網(wǎng)絡(luò)泛洪等,它是一個(gè)比較寬泛的攻擊種類,很多都與數(shù)據(jù)庫(kù)本身的漏洞有關(guān)。
數(shù)據(jù)庫(kù)通信協(xié)議漏洞。數(shù)據(jù)庫(kù)本身存在很多安全漏洞,隨著各個(gè)公司對(duì)自身數(shù)據(jù)庫(kù)產(chǎn)品不斷打補(bǔ)丁的方式,彌補(bǔ)了很多數(shù)據(jù)庫(kù)安全漏洞。很多漏洞與協(xié)議有關(guān),由于數(shù)據(jù)庫(kù)自身審計(jì)機(jī)制不會(huì)審計(jì)關(guān)于協(xié)議的操作,所以協(xié)議漏洞應(yīng)該更加引起數(shù)據(jù)庫(kù)管理員的重視。如SQLSlammer2蠕蟲漏洞就是利用了SQLServer協(xié)議中的漏洞實(shí)施拒絕服務(wù)攻擊。
其他威脅。除了上述的主要威脅外,數(shù)據(jù)庫(kù)還面臨很多其他威脅,如濫用合法權(quán)限導(dǎo)致的數(shù)據(jù)庫(kù)信息被竊取、修改;審計(jì)記錄功能不足,備份數(shù)據(jù)被泄露等威脅。
4SQLServer安全機(jī)制
4.1SQLServer的安全驗(yàn)證模式
對(duì)于身份驗(yàn)證模式,SQLServer提供了兩種認(rèn)證方式:Windows身份認(rèn)證模式和混合身份認(rèn)證模式。如圖3所示。Windows身份認(rèn)證模式,即使用Windows中的其中一個(gè)用戶登錄到SQLServer數(shù)據(jù)庫(kù)中。SQLServer中的用戶名和密碼與Windows用戶的用戶名和密碼完全相同。數(shù)據(jù)庫(kù)的身份驗(yàn)證完全依靠Windows用戶的安全驗(yàn)證。當(dāng)用戶一旦通過Windows的安全驗(yàn)證后,則就能夠有權(quán)進(jìn)入SQLServer數(shù)據(jù)庫(kù)中。
混合身份認(rèn)證模式,即同時(shí)使用Windows的身份驗(yàn)證和SQLServer的身份驗(yàn)證。根據(jù)通信時(shí)使用的網(wǎng)絡(luò)庫(kù)來決定具體采用哪種方式進(jìn)行驗(yàn)證。若用戶使用命名管道登錄則使用Windows身份驗(yàn)證,若用戶使用TCP/IPsockets登錄則使用SQLServer身份驗(yàn)證。
Windows身份認(rèn)證是程序安裝時(shí),在SQLServer加入了BUILTIN\Administrators用戶名,這時(shí)可以采用Windows認(rèn)證登錄SQLServer,與混合身份認(rèn)證模式的差別是Windows混合登陸是用Windows使用的默認(rèn)用戶名登錄,有sa權(quán)限,而選則身份認(rèn)證時(shí)使用的是自己設(shè)置的用戶名。遠(yuǎn)程采用Windows身份認(rèn)證時(shí),需要將登錄的計(jì)算機(jī)管理員用戶加入到服務(wù)器端的信任列表中,并賦予其本機(jī)admin權(quán)限。
4.2審計(jì)
數(shù)據(jù)庫(kù)審計(jì)是指當(dāng)用戶對(duì)數(shù)據(jù)庫(kù)進(jìn)行各種操作時(shí),審計(jì)功能會(huì)實(shí)時(shí)監(jiān)視和記錄用戶的行為。審計(jì)功能對(duì)數(shù)據(jù)庫(kù)管理員來說是非常有價(jià)值的。通過審計(jì)機(jī)制,可以隨時(shí)查看用戶行為,便于追查責(zé)任,對(duì)于不正常的用戶行為可以及時(shí)的制止,同時(shí)審計(jì)功能還有助于發(fā)現(xiàn)數(shù)據(jù)庫(kù)安全方面的漏洞和弱點(diǎn)。一般通過SQL的事件探查器完成審計(jì)工作,由管理員權(quán)限用戶進(jìn)行。
審計(jì)可以在服務(wù)器和數(shù)據(jù)庫(kù)級(jí)別上或者針對(duì)個(gè)別數(shù)據(jù)庫(kù)對(duì)象實(shí)現(xiàn),并以不同的格式保存記錄,如二進(jìn)制文件或Windows應(yīng)用程序日志。在SQLServer的指定實(shí)例中創(chuàng)建一個(gè)SQLServer的審計(jì)。SQL語句如下:
createserverAUDITuserAuditTOFILE(FILEPATH='D:\audit',MAXSIZE=10MB)with(QUEUE_DELAY=5000)。
4.3訪問控制
訪問控制指的是數(shù)據(jù)庫(kù)對(duì)于每個(gè)用戶設(shè)定了嚴(yán)格的訪問權(quán)限。SQLServer將用戶分為不同等級(jí):一般用戶、數(shù)據(jù)庫(kù)對(duì)象擁有者用戶、數(shù)據(jù)庫(kù)所有者用戶和系統(tǒng)管理員用戶四大等級(jí)。不同等級(jí)的用戶操作數(shù)據(jù)庫(kù)的權(quán)限不同。SQL授權(quán)語句可以把語句權(quán)限或者對(duì)象權(quán)限授予給其他用戶和角色。如下:
GRANT{ALL|statement[,...n]}TOsecurity_account[,...n]。
4.4其他安全機(jī)制
SQLServer安全機(jī)制還有視圖和存儲(chǔ)過程機(jī)制、數(shù)據(jù)庫(kù)加密機(jī)制等。視圖是從一個(gè)或幾個(gè)基本表(視圖)中導(dǎo)出的虛表。在數(shù)據(jù)庫(kù)系統(tǒng)中,可以利用視圖通過授予用戶操作特定視圖的權(quán)限。限制用戶訪問表的特定行和特定列來保證數(shù)據(jù)的安全,防止用戶對(duì)基本表的操作,實(shí)現(xiàn)行級(jí)或列級(jí)的安全性。SQLServer中存儲(chǔ)過程是存儲(chǔ)于數(shù)據(jù)庫(kù)內(nèi)部經(jīng)過編譯可執(zhí)行的SQL語句,它可被其他應(yīng)用程序調(diào)用執(zhí)行。徹底隱藏了用戶可用的數(shù)據(jù)和數(shù)據(jù)操作中涉及的某些保密處理。SQLServer使用哈希函數(shù)來加密隱藏用戶存儲(chǔ)在Master數(shù)據(jù)庫(kù)中系統(tǒng)表內(nèi)的密碼,將已定義的視圖、存儲(chǔ)過程、觸發(fā)器等都存儲(chǔ)在系統(tǒng)表syscomments中,SQLServer提供了內(nèi)部加密機(jī)制。
5結(jié)束語
數(shù)據(jù)庫(kù)通常保存著學(xué)校、企業(yè)、政府和其他部門的重要信息,數(shù)據(jù)庫(kù)的安全性是非常重要的。盡管計(jì)算機(jī)系統(tǒng)本身和數(shù)據(jù)庫(kù)本身都有嚴(yán)格的安全防御措施,但是還需要管理、人為和法律等各個(gè)方面的配合,特別是數(shù)據(jù)庫(kù)管理人員應(yīng)該對(duì)數(shù)據(jù)庫(kù)安全進(jìn)行足夠的重視,提高數(shù)據(jù)庫(kù)安全防范意識(shí)。在計(jì)算機(jī)安全機(jī)制技術(shù)不斷完善的同時(shí),人員安全防范意識(shí)也需要不斷加強(qiáng),這樣數(shù)據(jù)庫(kù)的安全才會(huì)越來越有保障。
參考文獻(xiàn)
[1]夏代提古麗·克依木.關(guān)于網(wǎng)絡(luò)環(huán)境下數(shù)據(jù)庫(kù)安全機(jī)制問題的若干思考[J].時(shí)代教育,2012.19.
[2]谷震離,杜根遠(yuǎn).SQLServer數(shù)據(jù)庫(kù)應(yīng)用程序中數(shù)據(jù)庫(kù)安全性研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2007.15.
[3]朱林,王峰,張曉潔,裴廣紅.淺談網(wǎng)絡(luò)數(shù)據(jù)庫(kù)的安全性[J].電腦知識(shí)與技術(shù),2011.29.
[4]王玉國(guó),李啟鵬.SQLServer的安全機(jī)制分析及實(shí)現(xiàn)建議[J].通化師范學(xué)院學(xué)報(bào),2004.10.
[5]懷艾芹.基于SQLServer的高校OA系統(tǒng)數(shù)據(jù)庫(kù)安全技術(shù)研究[J].計(jì)算機(jī)與數(shù)字工程,2010.10.
[6]謝志宇,鄭林華,王梓斌.SQLServer數(shù)據(jù)庫(kù)的安全設(shè)計(jì)與應(yīng)用[J].電腦知識(shí)與技術(shù),2006.32.
轉(zhuǎn)載請(qǐng)注明來自:http://www.jinnzone.com/jisuanjiyingyonglw/29908.html