SQLServer是由美國(guó) Microsoft公司推出的一個(gè)為分散式客戶(hù)機(jī)/服務(wù)器操作所設(shè)計(jì)的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),能和WindowsNT良好兼容,為管理企業(yè)相關(guān)日常事務(wù)性信息提供了很好的解決方案。因此,SQLServer數(shù)據(jù)庫(kù)在各行各業(yè)中得到了廣泛的應(yīng)用。筆者以SQLserver數(shù)據(jù)庫(kù)為對(duì)象,對(duì)數(shù)據(jù)庫(kù)的實(shí)際操作中的安全因素進(jìn)行探究,比如:搜索、數(shù)據(jù)庫(kù)設(shè)密、查尋、信息分析、驗(yàn)證、報(bào)表、數(shù)據(jù)整合、備份、同步功能、審計(jì)功能、訪問(wèn)控制、存儲(chǔ)原理、恢復(fù)和并發(fā)控制原理等,并提出一些行之有效的解決措施,以實(shí)現(xiàn)加強(qiáng)數(shù)據(jù)庫(kù)的安全管理。
過(guò)去大多數(shù)人只關(guān)心計(jì)算機(jī)操作系統(tǒng)和互聯(lián)網(wǎng)安全方面的因素,對(duì)數(shù)據(jù)庫(kù)安全因素沒(méi)有引起足夠的重視。然而,數(shù)據(jù)庫(kù)中往往存儲(chǔ)了大量重要的、多樣的企業(yè)以及政府等機(jī)構(gòu)的信息,維系著電子商務(wù)活動(dòng)、企業(yè)資源計(jì)劃等商業(yè)系統(tǒng)的正常運(yùn)行。雖然,在當(dāng)前的計(jì)算機(jī)操作系統(tǒng)中采用了多種安全保障手段,但是數(shù)據(jù)的整體性與合理性仍存在著許多安全隱患,包括:密碼攻略、系統(tǒng)漏洞、數(shù)據(jù)庫(kù)安全操作、網(wǎng)絡(luò)病毒以及自身的安全方案缺失。正因?yàn)閷?duì)數(shù)據(jù)庫(kù)的安全措施沒(méi)有引起足夠的重視,所以導(dǎo)致這些安全問(wèn)題的發(fā)生。為此,我們就關(guān)于SQLserver數(shù)據(jù)庫(kù)的安全防范措施進(jìn)行探析。
(1)數(shù)據(jù)的完整性。一方面數(shù)據(jù)庫(kù)完整性(Database Integrity)體現(xiàn)在數(shù)據(jù)庫(kù)中數(shù)據(jù)的合理性和兼容性。而此時(shí)的數(shù)據(jù)庫(kù)完整性存在一定的限制條件,其實(shí)也能把數(shù)據(jù)庫(kù)完整性的設(shè)計(jì)理解成數(shù)據(jù)庫(kù)完整性限制條件的設(shè)計(jì)。因此,可以避免合法用戶(hù)操作數(shù)據(jù)庫(kù)時(shí)往數(shù)據(jù)庫(kù)中添加不合理的數(shù)據(jù)。另一方面數(shù)據(jù)庫(kù)中的數(shù)據(jù)的完整性也體現(xiàn)在物理完整性和邏輯完整性?xún)煞矫?。物理完整性意思是能夠使?shù)據(jù)庫(kù)中的數(shù)據(jù)免受一些不利的物理因素(如硬件出錯(cuò)、瞬間停電等)影響,甚至遇到的災(zāi)難性毀壞后還可以重建和修復(fù)數(shù)據(jù)庫(kù);邏輯完整性則負(fù)責(zé)保護(hù)數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu),包含數(shù)據(jù)的句義完整性和使用完整性。數(shù)據(jù)的句義完整性是指在邏輯基礎(chǔ)上限制數(shù)據(jù)的存取,數(shù)據(jù)的使用完整性則是指在確保并發(fā)事務(wù)中前后數(shù)據(jù)的準(zhǔn)確性。
(2)數(shù)據(jù)的保密性。數(shù)據(jù)的保密性指數(shù)據(jù)庫(kù)中的數(shù)據(jù)不會(huì)發(fā)生泄露以及被非法獲取。一般采用授權(quán)訪問(wèn),訪問(wèn)時(shí)相同數(shù)據(jù)時(shí)根據(jù)授權(quán)權(quán)限的不同來(lái)限制存取的權(quán)限,另外還要針對(duì)用戶(hù)的訪問(wèn)操作行為進(jìn)行記錄和統(tǒng)計(jì)。
(3)數(shù)據(jù)的合理性。數(shù)據(jù)庫(kù)的合理性是指數(shù)據(jù)庫(kù)不應(yīng)限制合法用戶(hù)對(duì)數(shù)據(jù)的合理操作,并能實(shí)現(xiàn)人機(jī)互動(dòng)功能以及保證高效的系統(tǒng)運(yùn)行效率。
(1)管理數(shù)據(jù)庫(kù)用戶(hù)。按登錄方式來(lái)分類(lèi),SQL Server數(shù)據(jù)庫(kù)有兩種登錄使用賬戶(hù):一種是由SQL Server數(shù)據(jù)庫(kù)負(fù)責(zé)管理其他登錄時(shí)需確定身份的賬戶(hù),即管理員賬戶(hù);另一種是從互聯(lián)網(wǎng)上登錄到SQL Server的普通賬戶(hù)。部分普通登錄賬戶(hù)會(huì)在初裝SQL Server后自己生成,當(dāng)然也可以按實(shí)際需要來(lái)建立普通登錄賬戶(hù)。但這種登錄賬戶(hù)只可以連接到相關(guān)服務(wù)器上,還不具備查詢(xún)?nèi)魏螖?shù)據(jù)的能力。只有通過(guò)身證驗(yàn)證后,才可以登錄數(shù)據(jù)庫(kù)進(jìn)行查詢(xún)。從建立在服務(wù)器上的登錄賬戶(hù)到成為數(shù)據(jù)庫(kù)的用戶(hù),這種實(shí)現(xiàn)方式稱(chēng)之為“映射”。因此一個(gè)普通登錄賬戶(hù)可以直接體現(xiàn)在數(shù)據(jù)庫(kù)系統(tǒng)中和管理者賬戶(hù)所需的工作量,而數(shù)據(jù)庫(kù)管理者賬戶(hù)就是一個(gè)擁有特殊權(quán)限的用戶(hù),或者具備此權(quán)限的一組賬戶(hù)。所以數(shù)據(jù)庫(kù)管理者賬戶(hù)必須擁有非常高的信任度。
(2)普通用戶(hù)的身份確定。數(shù)據(jù)庫(kù)系統(tǒng)、計(jì)算機(jī)操作系統(tǒng)和網(wǎng)絡(luò)在線服務(wù)都可以進(jìn)行普通數(shù)據(jù)庫(kù)賬戶(hù)身份識(shí)別,再由服務(wù)器操作系統(tǒng)進(jìn)一步確認(rèn),雙層驗(yàn)證可以保證用戶(hù)的身份安全。
(3)操作系統(tǒng)管理權(quán)限。權(quán)限有三種類(lèi)型:對(duì)象權(quán)限、語(yǔ)句權(quán)限、隱含權(quán)限。對(duì)象權(quán)限為用戶(hù)操作數(shù)據(jù)庫(kù)中文字、圖片等信息的權(quán)限;語(yǔ)句權(quán)限為可否使用DDL語(yǔ)句的權(quán)限;隱含權(quán)限為所屬角色和對(duì)象擁有者的權(quán)限。權(quán)限管理內(nèi)容也有三種:授予權(quán)限、收回權(quán)限、拒絕權(quán)限,分別為允許、收回或拒絕某種操作權(quán)。負(fù)責(zé)數(shù)據(jù)庫(kù)管理者一定要有相關(guān)重要文件的操作系統(tǒng)權(quán)限;普通數(shù)據(jù)庫(kù)用戶(hù)不能有此權(quán)限。系統(tǒng)管理員具備修改操作系統(tǒng)賬戶(hù)安全性區(qū)域的權(quán)限,才能為普通數(shù)據(jù)庫(kù)用戶(hù)分配角色。
(4)用戶(hù)安全措施。為了保障數(shù)據(jù)庫(kù)的安全性,必須要求登錄用戶(hù)采取一定的安全性措施,其中包括設(shè)置登錄密碼和相應(yīng)大小的權(quán)限。比如:針對(duì)一個(gè)擁有眾多登錄用戶(hù)的大型數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)管理者應(yīng)將用戶(hù)組分門(mén)別類(lèi),方便對(duì)登錄用戶(hù)的權(quán)限進(jìn)行管控。
(5)管理權(quán)限管控。數(shù)據(jù)庫(kù)服務(wù)器與普通用戶(hù)、管理賬戶(hù)與數(shù)據(jù)庫(kù)的鏈接,都以角色為手段對(duì)管理者的權(quán)限進(jìn)行管控。
(6)數(shù)據(jù)庫(kù)程序設(shè)計(jì)員管理措施。原數(shù)據(jù)庫(kù)程序設(shè)計(jì)員的權(quán)限與開(kāi)發(fā)環(huán)境要確認(rèn),給予free和controlled等軟件設(shè)計(jì)授權(quán)。
SQL SERVER的數(shù)據(jù)庫(kù)安全性問(wèn)題,有幾個(gè)具體的操作過(guò)程或步驟,下面一一探究:
(1)身份識(shí)別。首先用戶(hù)登錄數(shù)據(jù)庫(kù)時(shí)需要提供相應(yīng)的ID和密碼,在某些認(rèn)證基礎(chǔ)上數(shù)據(jù)庫(kù)系統(tǒng)會(huì)對(duì)用戶(hù)的身份進(jìn)行嚴(yán)格的審核,在得到身份識(shí)別后才會(huì)獲得相應(yīng)的權(quán)限。windows NT身份識(shí)別和混合身份識(shí)別這兩種身份識(shí)別方式都可用于 SQL SERVER的數(shù)據(jù)庫(kù)。其中前者比后者更安全可靠,強(qiáng)調(diào)使用windows NT身份識(shí)別方式后登錄SQL SERVER數(shù)據(jù)庫(kù)系統(tǒng),以減少來(lái)自因特網(wǎng)工具的入侵,更得利于計(jì)算機(jī)本身安全防御系統(tǒng)的幫助,并將登錄密碼放置于服務(wù)器端避免漏洞出現(xiàn)。
(2)訪問(wèn)限制。當(dāng)某個(gè)SQL SERVER數(shù)據(jù)庫(kù)用戶(hù)經(jīng)SQL Serer數(shù)據(jù)庫(kù)認(rèn)證后登錄成功,能否完成某個(gè)操作指令,決定于其的使用權(quán)限范圍。SQL serer數(shù)據(jù)庫(kù)系統(tǒng)從用戶(hù)的類(lèi)別中,運(yùn)用GRANT等相關(guān)語(yǔ)句來(lái)限制其權(quán)限,這很好地實(shí)現(xiàn)自主訪問(wèn)限制目標(biāo)。根據(jù)權(quán)限大小來(lái)分類(lèi),SQL SERVER的用戶(hù)可分為:數(shù)據(jù)庫(kù)系統(tǒng)管理者用戶(hù)、數(shù)據(jù)庫(kù)擁有者用戶(hù)、普通用戶(hù)。如何實(shí)現(xiàn)SQL Serer高效管理目的,可充分利用角色的概念,只需為權(quán)限大小相同的用戶(hù)創(chuàng)建一個(gè)角色并限定其相應(yīng)的權(quán)限,再將這些用戶(hù)變成該權(quán)限角色下的成員。如有需要,只需對(duì)角色的權(quán)限進(jìn)行設(shè)置操作,就可以達(dá)到所屬于該角色全部成員用戶(hù)同時(shí)設(shè)置的目的,該措施可完美解決相應(yīng)的管理難題,極大的方便了日常管理。
(3)觸發(fā)報(bào)警。監(jiān)測(cè)探頭正常工作時(shí)會(huì)自動(dòng)完成所在區(qū)域的監(jiān)控,得到相關(guān)的操作信息,比如:登錄用戶(hù)名、當(dāng)前系統(tǒng)用戶(hù)、數(shù)據(jù)庫(kù)系統(tǒng)名稱(chēng)、SQL語(yǔ)句、操作完成情況(成功或者失?。┑刃畔?,再將這些信息轉(zhuǎn)格式后傳送至分析機(jī),分析系統(tǒng)按一定的準(zhǔn)則,識(shí)別這些信息中對(duì)數(shù)據(jù)庫(kù)安全可能產(chǎn)生不利影響的操作,同時(shí)控制臺(tái)負(fù)責(zé)接收?qǐng)?bào)警信息并觸發(fā)報(bào)警,最后由管理員完成對(duì)危險(xiǎn)源 IP地址的阻斷。具體實(shí)施阻斷任務(wù)的是探頭,而管理員發(fā)出的阻斷命令先由分析機(jī)送到探頭并借助系統(tǒng)自身 API函數(shù)實(shí)施阻斷。
(4)具體命令的傳送。按一定規(guī)則格式化后的擁有固定格式的數(shù)據(jù)或命令,可以通過(guò)指定的端口,在探頭、分析機(jī)、控制臺(tái)之間進(jìn)行傳送。控制臺(tái)可維護(hù)更新分析機(jī)和探頭,并查詢(xún)其運(yùn)行狀態(tài)。控制臺(tái)負(fù)責(zé)發(fā)出指令,經(jīng)分析機(jī)篩選后傳達(dá)至響應(yīng)模塊執(zhí)行命令。其中上達(dá)下傳的命令都是由特定端口進(jìn)行傳遞。
(5)定期備份。最有效的防范手段就是定期給數(shù)據(jù)庫(kù)備份。具體操作可以用數(shù)據(jù)庫(kù)服務(wù)器來(lái)完成。
SQL Serer在不斷更新中將會(huì)面臨更多的安全性問(wèn)題,應(yīng)積極重視其實(shí)際功能所需及特點(diǎn),不斷完善相應(yīng)安全措施,才能有效提高數(shù)據(jù)庫(kù)使用效率,保障其安全運(yùn)行。
網(wǎng)絡(luò)安全技術(shù)與應(yīng)用2015年9期