高昊天
(東北石油大學(xué)計(jì)算機(jī)與信息技術(shù)學(xué)院,大慶,163000)
Distributed Database 也就是分布式數(shù)據(jù)庫(kù),可將其簡(jiǎn)寫(xiě)為DDB。DDB 是一組結(jié)構(gòu)化的數(shù)據(jù)集合,集合了計(jì)算機(jī)網(wǎng)絡(luò)中每個(gè)場(chǎng)地的數(shù)據(jù)庫(kù)邏輯,它們雖然屬于一個(gè)系統(tǒng),但是在從物理角度說(shuō),分布于網(wǎng)絡(luò)的不同結(jié)點(diǎn)上,具有邏輯協(xié)調(diào)性和分布性。邏輯協(xié)調(diào)性主要是指各個(gè)子集從邏輯上來(lái)講是一個(gè)整體,并且每個(gè)子集之間具有嚴(yán)密的約束規(guī)則。分布性主要是指根據(jù)需求,對(duì)整體數(shù)據(jù)進(jìn)行劃分,形成具有一定結(jié)構(gòu)的子集使其在各個(gè)場(chǎng)地上分散存儲(chǔ)。
網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)實(shí)質(zhì)上就是各個(gè)終端設(shè)備連接在一起的方式。網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)有星型結(jié)構(gòu)、總線型結(jié)構(gòu)及環(huán)型結(jié)構(gòu)三種類(lèi)型。在分布式數(shù)據(jù)庫(kù)中通常采用總線星型結(jié)構(gòu)。
通常公司網(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu)具體規(guī)劃由客戶(hù)機(jī)的數(shù)量和辦公地點(diǎn)的分布來(lái)決定。星型結(jié)構(gòu)布局一般適用于辦公地點(diǎn)集中,客戶(hù)機(jī)接入數(shù)量較少的公司??偩€星型結(jié)構(gòu)布局一般適用于辦公地點(diǎn)分散,客戶(hù)機(jī)接入數(shù)量較多的公司。在連接總線星型網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)時(shí),一定要遵循經(jīng)濟(jì)實(shí)用的原則,長(zhǎng)距離的連接可通過(guò)光纖完成,短距離的連接可以通過(guò)雙絞線完成。
分布式數(shù)據(jù)庫(kù)網(wǎng)絡(luò)的關(guān)鍵兩部分就是客戶(hù)機(jī)和服務(wù)器,不同的操作系統(tǒng)和網(wǎng)絡(luò)協(xié)議之間之所以能夠?qū)崿F(xiàn)通信,是因?yàn)椴捎昧讼嗤腘et 通信協(xié)議。分布式數(shù)據(jù)庫(kù)主要包括以下四部分:DB(數(shù)據(jù)庫(kù)):全局?jǐn)?shù)據(jù)庫(kù)存在數(shù)據(jù)庫(kù)的全局?jǐn)?shù)據(jù),很多站點(diǎn)都可對(duì)其進(jìn)行訪問(wèn),參與全局應(yīng)用;而局部數(shù)據(jù)庫(kù)中存儲(chǔ)的是只供一個(gè)站點(diǎn)使用的部分?jǐn)?shù)據(jù)。DBMS(數(shù)據(jù)庫(kù)管理系統(tǒng)):DBMS 也主要分為全局DBMS 及局部DBMS。CM(通信管理):通信管理的主要功能就是完成系統(tǒng)分布在數(shù)據(jù)庫(kù)每個(gè)場(chǎng)地之間的通信,傳遞數(shù)據(jù)及消息。
④DD(數(shù)據(jù)字典):分為局部DD(只提供一個(gè)站點(diǎn)的數(shù)據(jù)管理和描述信息)和全局DD(提供全部站點(diǎn)的數(shù)據(jù)管理和描述信息)。
分布式數(shù)據(jù)庫(kù)的網(wǎng)絡(luò)安全隱患主要由以下5 方面:竊聽(tīng):黑客采用高技術(shù)手段能夠在網(wǎng)絡(luò)信道上能夠竊取網(wǎng)絡(luò)報(bào)文,其主要是對(duì)服務(wù)器至服務(wù)器之間或者是客戶(hù)至數(shù)據(jù)庫(kù)服務(wù)器之間的報(bào)文進(jìn)行監(jiān)聽(tīng)。②重發(fā)攻擊:黑客竊聽(tīng)報(bào)文之后,對(duì)其進(jìn)行修改或者是保持原樣,又將其重發(fā)給客戶(hù)或服務(wù)器,以此使系統(tǒng)不能正常運(yùn)行,更有甚者對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行修改。重發(fā)攻擊主要針對(duì)站點(diǎn)間的身份驗(yàn)證過(guò)程和站點(diǎn)間的數(shù)據(jù)通信過(guò)程。③假冒攻擊:黑客通過(guò)發(fā)送報(bào)文堵塞客戶(hù)或服務(wù)器的通信端口,然后再冒充該客戶(hù)或服務(wù)器對(duì)分布式數(shù)據(jù)庫(kù)系統(tǒng)中的其它站點(diǎn)進(jìn)行擾亂,使其不能正常運(yùn)行,從而實(shí)現(xiàn)數(shù)據(jù)庫(kù)的非法數(shù)據(jù)訪問(wèn)。④越權(quán)攻擊:如果黑客本身可以合法使用分布式數(shù)據(jù)庫(kù)系統(tǒng),如果訪問(wèn)控制方面存在漏洞,則可以利用此漏洞實(shí)現(xiàn)非授權(quán)數(shù)據(jù)庫(kù)的訪問(wèn)。⑤迂回攻擊:黑客可以利用操作系統(tǒng)和網(wǎng)絡(luò)協(xié)議中存在的安全漏洞,對(duì)數(shù)據(jù)庫(kù)中的文件直接進(jìn)行訪問(wèn)。
雖然現(xiàn)在使用的數(shù)據(jù)庫(kù)軟件在數(shù)據(jù)安全方面的服務(wù)越來(lái)越完善,但是軟件難免會(huì)存在一些問(wèn)題,不能面面俱到,所以它提供的數(shù)據(jù)庫(kù)安全服務(wù)只是能夠避免大多數(shù)的常見(jiàn)安全問(wèn)題,往往不容易發(fā)現(xiàn)系統(tǒng)運(yùn)行中存在的致命問(wèn)題,靈活性較低,所以,要想提高數(shù)據(jù)庫(kù)系統(tǒng)的安全性,一定要對(duì)不安全因素正確識(shí)別,防止數(shù)據(jù)被侵害。面對(duì)安全威脅,一定要采取有效措施,提高數(shù)據(jù)庫(kù)的安全性,滿(mǎn)足其安全需求。通常采取的安全措施主要包括數(shù)據(jù)備份技術(shù)、系統(tǒng)恢復(fù)技術(shù)、并發(fā)訪問(wèn)控制方法、數(shù)據(jù)加密、訪問(wèn)控制、網(wǎng)絡(luò)防火墻、審計(jì)追蹤等。數(shù)據(jù)備份技術(shù)技術(shù)主要是對(duì)數(shù)據(jù)進(jìn)行備份,防止因?yàn)橄到y(tǒng)的損壞造成數(shù)據(jù)信息的丟失,一旦系統(tǒng)遭到非法入侵或者是破壞,可以采取系統(tǒng)恢復(fù)技術(shù)對(duì)其及時(shí)進(jìn)行修復(fù)。并發(fā)訪問(wèn)控制方法的主要功能是確保數(shù)據(jù)信息的一致性,確保系統(tǒng)出現(xiàn)混亂,使其不能正常運(yùn)行。如果操作過(guò)程中出現(xiàn)操作失誤如插入更改數(shù)據(jù),可以對(duì)程序重新進(jìn)行設(shè)計(jì)來(lái)解決此問(wèn)題,其實(shí)質(zhì)就是通過(guò)管理系統(tǒng)檢驗(yàn)各種程序的運(yùn)行狀態(tài)是不是滿(mǎn)足規(guī)定的邏輯條件。
用戶(hù)登錄系統(tǒng)系統(tǒng)一定要經(jīng)過(guò)身份的識(shí)別,其用戶(hù)管理包括標(biāo)識(shí)User ID 和鑒別。標(biāo)識(shí)通常采用的方法就是輸入用戶(hù)名和口令Pass Word,經(jīng)過(guò)系統(tǒng)的身份鑒別,向系統(tǒng)證明自己的身份,合法則登錄系統(tǒng)。身份認(rèn)證工作對(duì)系統(tǒng)安全來(lái)說(shuō)十分重要,除了簡(jiǎn)單的口令控制還包括比較復(fù)雜的函數(shù)計(jì)算。并且隨著科學(xué)技術(shù)的發(fā)展,數(shù)字簽名技術(shù)、智能卡技術(shù)和指紋等生理特征也為用戶(hù)的身份認(rèn)證提供了技術(shù)支持。SQL Server 數(shù)據(jù)庫(kù)支持Windows 驗(yàn)證和SQL Server 驗(yàn)證模式兩種登錄賬號(hào)檢查方式,Windows 驗(yàn)證的安全性較高,SQL Server 認(rèn)證比較簡(jiǎn)單,易實(shí)現(xiàn)。為了提高分布式數(shù)據(jù)庫(kù)的安全性和實(shí)現(xiàn)用戶(hù)的集中管理,會(huì)采用Windows驗(yàn)證模式。
登錄分布式數(shù)據(jù)庫(kù)的服務(wù)器之后,用戶(hù)的訪問(wèn)權(quán)限,需要通過(guò)系統(tǒng)的管理員進(jìn)行授權(quán),以此來(lái)規(guī)定合法用戶(hù)訪問(wèn)數(shù)據(jù)庫(kù)時(shí)的訪問(wèn)范圍、訪問(wèn)方式及能從事的工作。SQL Server 中的訪問(wèn)權(quán)限主要有服務(wù)器本身的操作權(quán)限和數(shù)據(jù)庫(kù)的訪問(wèn)權(quán)限兩方面。服務(wù)器本身的操作權(quán)限通過(guò)設(shè)置服務(wù)器角色就能實(shí)現(xiàn)。數(shù)據(jù)庫(kù)的訪問(wèn)權(quán)限主要包括兩方面:一是,訪問(wèn)數(shù)據(jù)庫(kù)的權(quán)限;二是,進(jìn)入數(shù)據(jù)庫(kù)之后可以訪問(wèn)數(shù)據(jù)庫(kù)中的數(shù)據(jù)權(quán)限,比如哪些存儲(chǔ)過(guò)程和視圖能夠進(jìn)行訪問(wèn),是不是能夠進(jìn)行SELECT 數(shù)據(jù)操作等。通過(guò)數(shù)據(jù)庫(kù)中的用戶(hù)對(duì)象設(shè)置,可以設(shè)置訪問(wèn)權(quán)限,至于登錄之后能夠訪問(wèn)的數(shù)據(jù)庫(kù)內(nèi)容,則需要通過(guò)數(shù)據(jù)庫(kù)的角色對(duì)象進(jìn)行設(shè)置。用戶(hù)登錄數(shù)據(jù)庫(kù)的安全檢查如圖1 所示。
圖1 SQL Server 的安全檢查示意圖
數(shù)據(jù)庫(kù)系統(tǒng)的主要任務(wù)就是對(duì)主要業(yè)務(wù)數(shù)據(jù)信息進(jìn)行存儲(chǔ)和管理。所以,對(duì)數(shù)據(jù)庫(kù)中的信息進(jìn)行加密,可以提高信息的安全性,防止其被竊取。由于數(shù)據(jù)庫(kù)中的信息很多,并且保存的時(shí)間較長(zhǎng),所以,系統(tǒng)對(duì)加密的要求更高。此外,由于,數(shù)據(jù)庫(kù)中的信息使用的用戶(hù)較多,并且大多時(shí)候都是多用戶(hù)共享信息,所以,加密和解密的時(shí)間要盡量短,并且在這個(gè)過(guò)程中盡量不要影響系統(tǒng)的性能。
因?yàn)镾QL Server 具有一定的加密功能,其加密的數(shù)據(jù)包括通過(guò)網(wǎng)絡(luò)在服務(wù)器端及客戶(hù)端傳輸?shù)乃袛?shù)據(jù)、視圖及存儲(chǔ)過(guò)程、應(yīng)用程序及登錄賬號(hào)角色的登錄密碼、觸發(fā)程序的定義等。SQL Server 網(wǎng)絡(luò)傳輸數(shù)據(jù)的加密處理通過(guò)Secure Socket Layer(SSL)進(jìn)行。
在SQL Server 中用戶(hù)不能直接訪問(wèn)數(shù)據(jù)庫(kù),而是直接訪問(wèn)視圖。SQL Server 中的視圖一般通過(guò)分布式查詢(xún)進(jìn)行定義,行集和遠(yuǎn)程表的引用以引用本地表的方式通過(guò)INSERT、SELECT、DELETE、UPDATE 語(yǔ)句進(jìn)行。
存儲(chǔ)過(guò)程可以通過(guò)設(shè)置保護(hù)基表數(shù)據(jù)。為了防止基表不被用戶(hù)直接、任意修改,可以通過(guò)存儲(chǔ)過(guò)程對(duì)基表進(jìn)行修改,然后用戶(hù)只有執(zhí)行存儲(chǔ)過(guò)程的權(quán)利,沒(méi)有對(duì)過(guò)程進(jìn)行更改的權(quán)利,這樣限制了用戶(hù)的權(quán)限,保證了數(shù)據(jù)安全。
審計(jì)跟蹤主要是對(duì)系統(tǒng)的運(yùn)行過(guò)程進(jìn)行審計(jì),自動(dòng)將所有的數(shù)據(jù)庫(kù)操作在審計(jì)日記中進(jìn)行記錄,然后系統(tǒng)可以對(duì)審計(jì)數(shù)據(jù)進(jìn)行分析,確定是否存在非法操作對(duì)數(shù)據(jù)庫(kù)進(jìn)行攻擊。攻擊檢測(cè)就是對(duì)審計(jì)數(shù)據(jù)進(jìn)行分析,確定是否存在內(nèi)部和外部的攻擊者,一旦發(fā)現(xiàn)存在攻擊事件,就要找出系統(tǒng)的熱點(diǎn),追究相關(guān)責(zé)任者,并采取相關(guān)措施完善數(shù)據(jù)庫(kù)系統(tǒng)。這兩項(xiàng)技術(shù)是數(shù)據(jù)庫(kù)的安全措施中必不可少的,對(duì)數(shù)據(jù)庫(kù)的安全非常重要。
本文主要探討的是分布式數(shù)據(jù)庫(kù)的安全機(jī)制。為了提高數(shù)據(jù)庫(kù)中信息的安全性,對(duì)其安全機(jī)制進(jìn)行研究十分有必要。數(shù)據(jù)庫(kù)的安全問(wèn)題是一項(xiàng)十分復(fù)雜的工程,不僅涉及到其中的技術(shù)問(wèn)題,還涉及到安全控制的問(wèn)題,所以,在分布式數(shù)據(jù)庫(kù)的管理中,一定要做好安全性規(guī)劃。只有保證數(shù)據(jù)庫(kù)信息的安全,才能滿(mǎn)足用戶(hù)的信息共享需求,讓這些信息更好的為人們服務(wù)。
[1] 楊立志,黃毅梅,張九營(yíng),任宏.SQL SERVER 數(shù)據(jù)庫(kù)的安全管理[J].微計(jì)算機(jī)信息,2006,3-1:85-86.
[2] 岳敏.基于.NET 的分布式數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)研究及改進(jìn)[D].青島大學(xué),2007.
[3] 李東風(fēng),謝昕.數(shù)據(jù)庫(kù)安全技術(shù)研究與應(yīng)用[J].計(jì)算機(jī)安全,2008,01:42-44.
[4] 李瑞林.計(jì)算機(jī)數(shù)據(jù)庫(kù)安全管理研究[J].制造業(yè)自動(dòng)化,2012,10:24-26.