前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的數(shù)據(jù)庫系統(tǒng)主題范文,僅供參考,歡迎閱讀并收藏。
關(guān)鍵詞 數(shù)據(jù)庫;安全特性;數(shù)據(jù)備份
中圖分類號TP393 文獻標識碼A 文章編號 1674-6708(2010)23-0242-02
數(shù)據(jù)庫,就是若干數(shù)據(jù)的集合體。這些數(shù)據(jù)存在于計算機的外存儲器上,而且不是雜亂無章地排列的。數(shù)據(jù)庫中數(shù)據(jù)量龐大,用戶訪問頻繁,有些數(shù)據(jù)具有保密性,因此數(shù)據(jù)庫要由數(shù)據(jù)庫管理系統(tǒng)進行科學地組織和管理,以確保數(shù)據(jù)庫的安全性和完整性。數(shù)據(jù)庫系統(tǒng)安全,包含兩種含義,分別為系統(tǒng)運行安全和系統(tǒng)信息安全。
1 數(shù)據(jù)庫系統(tǒng)的安全特性
1.1數(shù)據(jù)獨立性
數(shù)據(jù)獨立于應(yīng)用程序之外。理論上數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)獨立性分為兩種:1)物理獨立性。數(shù)據(jù)庫的物理結(jié)構(gòu)的變化不影響數(shù)據(jù)庫的應(yīng)用結(jié)構(gòu)其相應(yīng)的應(yīng)用程序。這里的物理結(jié)構(gòu)是指數(shù)據(jù)庫的物理位置、物理設(shè)備等;2)邏輯獨立性。數(shù)據(jù)庫邏輯結(jié)構(gòu)的變化不會影響用戶的應(yīng)用程序,數(shù)據(jù)類型的修改、增加、改變各表之間的聯(lián)系都不會導致應(yīng)用程序的修改。
這兩種數(shù)據(jù)獨立性都要靠DBMS來實現(xiàn)。到目前為止*物理獨立性已經(jīng)能基本實現(xiàn),慢邏輯獨立性實現(xiàn)起來非常困難,數(shù)據(jù)結(jié)構(gòu)一旦發(fā)生變化,一般情況,相應(yīng)的應(yīng)用程序都要作或多或少的修改。追求這一目標也成為數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)復雜的一個重要原因。
1.2數(shù)據(jù)安全性
一個數(shù)據(jù)庫能否防止無關(guān)人員得到他不應(yīng)該知道的數(shù)據(jù),是數(shù)據(jù)庫是否實用的一個重要指標。如果一個數(shù)據(jù)庫對所有的人都公開數(shù)據(jù),那么這個數(shù)據(jù)庫就不是一個可靠的數(shù)據(jù)庫。一般地,比較完整的數(shù)據(jù)庫對數(shù)據(jù)女安全采取了以下措施:1)將數(shù)據(jù)庫中需要保護的部分與其他部分相隔離;2)使用授權(quán)規(guī)則。這是數(shù)據(jù)庫系統(tǒng)經(jīng)常使用的一個辦沾,數(shù)據(jù)庫給用戶ID號和口令、權(quán)限。當用戶用此ID號和口令登錄后,就會獲得相應(yīng)的權(quán)限。不同的用戶或操作會有不同的權(quán)限。比如,對于一個表,某人有修改權(quán),而其他人只有查詢權(quán);3)將數(shù)據(jù)加密,以密碼的形式存于數(shù)據(jù)庫內(nèi)。
1.3數(shù)據(jù)的完整性
數(shù)據(jù)完整性通常表明數(shù)據(jù)在可靠性與準確性上是可信賴的,也意味著數(shù)據(jù)有可能是無效的或不完整的。數(shù)據(jù)完整性包括數(shù)據(jù)的正確性、有效性和―致性。
1)正確性。數(shù)據(jù)在輸入時要保證其輸入值與定義這個表時相應(yīng)的域的類型一致。如表中的某個字段為數(shù)值型,那么它只能允許用戶輸入數(shù)值型的數(shù)據(jù),否則不能保證數(shù)據(jù)庫的正確性;2)有效性。在保證數(shù)據(jù)正確的前提下,系統(tǒng)還要約束數(shù)據(jù)的有效性。例如:對于月份字段,若輸入值為17,那么這個數(shù)據(jù)就是無效數(shù)據(jù),這種無效輸入也稱為“垃圾輸入”。當然,若數(shù)據(jù)庫輸出的數(shù)據(jù)是無效的,相應(yīng)的稱為“垃圾輸出”;3)一致性。當不同的用戶使用數(shù)據(jù)庫,應(yīng)該保證他們?nèi)〕龅臄?shù)據(jù)必須一致。因為數(shù)據(jù)庫系統(tǒng)對數(shù)據(jù)的使用是集中控制的,因此數(shù)據(jù)的完整性控制還是比較容易實現(xiàn)的。
1.4并發(fā)控制
如果數(shù)據(jù)庫應(yīng)用要實現(xiàn)多用戶共享數(shù)據(jù),就可能在同一時刻多個用戶要存取數(shù)據(jù),這種事件叫做并發(fā)事件。書一個用戶取出數(shù)據(jù)進行修改,修改存入數(shù)據(jù)庫之前如有其他用戶再取此數(shù)據(jù),那么讀出的數(shù)據(jù)就是不正確的。這時就需要對這種并發(fā)操作施行控制,排除和避免這種錯誤的發(fā)生,保證數(shù)據(jù)的正確性。
1.5故障恢復
當數(shù)據(jù)庫系統(tǒng)遠行時出現(xiàn)物理或邏輯上的錯誤時, 如何盡快將它恢復正常,這就是數(shù)據(jù)庫系統(tǒng)的故障恢復功能。
2 數(shù)據(jù)庫的備份
備份對數(shù)據(jù)庫的安全來說是至關(guān)重要的。備份是指在某種介質(zhì)上,如磁帶儲數(shù)據(jù)庫或部分數(shù)據(jù)庫的拷貝。
數(shù)據(jù)庫的備份不足實時的,應(yīng)該什么時候做,用什么方式做,這主要取決于數(shù)據(jù)庫的不同規(guī)模和不同的用途。數(shù)據(jù)庫的備份主要考慮以下的幾個因素:備份周期;使用冷備份或是熱備份:使用增量備份或是全部備份,或者兩者同時使用:使用什么介質(zhì)進行備份,備份到磁盤還是磁帶:是人工備份還是設(shè)計一個程序定期自動備份等。數(shù)據(jù)庫的備份大致有三種類型:冷備份、熱備份和邏輯備份。
2.1冷備份
冷備份是在沒有最終用戶訪問它的情況下關(guān)閉數(shù)據(jù)庫,并將其備份。這是保持數(shù)據(jù)完整性的最好辦法,但如果數(shù)據(jù)庫太大,無法在備份窗口中完成對它的備份,該方法就不適用了。
2.2熱備份
熱備份是在數(shù)據(jù)庫正在被寫入的數(shù)據(jù)更新時進行。熱備份嚴重依賴日志文件。在進行時,日志文件將業(yè)務(wù)指令“堆起來”,而不真正將任何數(shù)據(jù)值寫入數(shù)據(jù)庫記錄。當這些業(yè)務(wù)被堆起來時,數(shù)據(jù)庫表并沒有被更新,因此數(shù)據(jù)庫被完整地備份。
該方法有“些明顯的缺點。首先,如果系統(tǒng)在進行備份時崩潰,則推在日志文件中的所有業(yè)務(wù)都會被丟失,因此也會造成數(shù)據(jù)的丟失;其次,它要求DBA仔細地監(jiān)視系統(tǒng)資源,這樣日志文件就不會占滿所有的存儲空間而不得不停止接受業(yè)務(wù);最后,日志文件本身在某種程度上也需要被備份以便重建數(shù)據(jù)。需要考慮另外的文件并使其與數(shù)據(jù)庫文件協(xié)調(diào)起來,為備份增加了復雜度。
由于數(shù)據(jù)庫的大小和系統(tǒng)可用性的需求,沒有對其進行備份的其他辦法。在有些情況下,如果日志文件能決定上次備份操作后哪些業(yè)務(wù)更改了哪些記錄的話,對數(shù)據(jù)庫進行增量備份是可行的。
2.3邏輯備份
邏輯備份使用軟件技術(shù)從數(shù)據(jù)庫提取數(shù)據(jù)并將結(jié)果寫入一個輸出文件。該輸出文件不是一個數(shù)據(jù)庫表,但是表中的所有數(shù)據(jù)是一個映像。不能對此輸出文件進行任何真正的數(shù)據(jù)庫操作。在大多數(shù)客戶機/服務(wù)器數(shù)據(jù)庫中,結(jié)構(gòu)化查詢語言就是用來創(chuàng)建輸出文件的。該過程有些慢,對大型數(shù)據(jù)庫的全盤備份不實用。盡管如此,當僅想備份那些上次備份之后改變了的數(shù)據(jù),即增量備份時,該方法非常好。為了從輸出文件恢復數(shù)據(jù),必須生成逆SQL語句。該過程也相當耗時,但工作的效果相當好。
參考文獻
[1]徐壽懷,胡美琛.數(shù)據(jù)庫安全研究的現(xiàn)狀與問題[J].計算 機工程,1997(3).
一、數(shù)據(jù)庫系統(tǒng)的安全需求
數(shù)據(jù)庫安全是信息安全的一個子集,也是信息安全中最重要的部分之一。與信息安全的整體需求相似,數(shù)據(jù)庫系統(tǒng)的安全要求主要包括數(shù)據(jù)的保密性、可用性和完整性三個方面。
1.數(shù)據(jù)的保密性數(shù)據(jù)的保密性是指禁止任何沒有權(quán)限的用戶非法訪問數(shù)據(jù)。
2.數(shù)據(jù)的可用性 數(shù)據(jù)的可用性指任何授權(quán)用戶的正常操作必須接受,同時又能保證人機交互友好、系統(tǒng)高效正常運行。
3.數(shù)據(jù)的完整性 數(shù)據(jù)庫系統(tǒng)的完整性是指數(shù)據(jù)要具備正確性、一致性和相容性等特點。
二、數(shù)據(jù)庫加密的要求
數(shù)據(jù)庫加密的目的就是要確保數(shù)據(jù)庫的安全,但是加解密操作過程必然會影響操作的效率,一個好的加密系統(tǒng)就是要在安全性和效率之間取得一個平衡。即:穩(wěn)定的數(shù)據(jù)庫加密系統(tǒng)必須滿足以下幾點要求:
1.加解密速度要求足夠快,這樣減少影響數(shù)據(jù)操作響應(yīng)時間。
2.加密強度要足夠大,保證長時間而且大量數(shù)據(jù)不被破譯。但是在實際應(yīng)用中加密算法不一定在理論上無法破解,但在實際應(yīng)用中能保證破解的代價大于獲得其中數(shù)據(jù)的意義。
3.對數(shù)據(jù)庫的合法用戶來說加解密操作是透明的,它不會影響用戶的合理操作。用戶在明文數(shù)據(jù)庫系統(tǒng)中能夠進行更新、增加、刪除數(shù)據(jù),在密文數(shù)據(jù)庫中也可以用相同的方法增加、更新和刪除數(shù)據(jù),而且感覺不到加解密過程的存在。
4.對加密后的數(shù)據(jù)庫存儲量并沒有明顯的增加。
5.密鑰管理機制靈活,加解密密鑰存儲安全,使用方便可靠。
三、數(shù)據(jù)庫加密的粒度
數(shù)據(jù)庫加密的粒度可以分為文件級、表級、字段級、記錄級和數(shù)據(jù)元素級等五個層次。
文件級加密。把數(shù)據(jù)庫文件作為一個整體,對整個數(shù)據(jù)庫文件用加密算法和加密密鑰加密,形成密文的形式來確保數(shù)據(jù)的機密性。
2.表級加密。表級加密的對象是整個表格,與文件級加密類似,表級加密中每個表格與其他不同的表密鑰經(jīng)過一定的加密算法運算后形成密文存儲。
3.字段級加密。字段加密又稱為域加密或?qū)傩约壖用?,一般而言屬性的個數(shù)少于相應(yīng)表格中的記錄數(shù)量,按字段加密需要保存的密鑰數(shù)相對較少。并且字段級加密是一種選擇性加密,并不是對所有數(shù)據(jù)都加密,而是選擇需要保密的字段加密,其余字段仍以明文形式存儲。
4.記錄級加密。所謂記錄級加密是指在數(shù)據(jù)庫中,每條記錄在相應(yīng)密鑰的作用下,被加密成密文數(shù)據(jù)保存起來。在數(shù)據(jù)庫加密方法中記錄級加密技術(shù)是較為常見的加密方式。
四、數(shù)據(jù)庫加密的實現(xiàn)方式
數(shù)據(jù)庫加密的實現(xiàn)方式主要體現(xiàn)在在數(shù)據(jù)庫系統(tǒng)中執(zhí)行加密的部件所處的位置和層次。按照數(shù)據(jù)庫系統(tǒng)與加密部件的不同關(guān)系,加密的實現(xiàn)方式可以大致分為兩類:庫內(nèi)加密和庫外加密。
1.庫內(nèi)加密。所謂庫內(nèi)加密是指在DBMS內(nèi)核層中實現(xiàn)加密過程,加/解密過程是透明的,數(shù)據(jù)完成加解密工作之后才在庫里進行存取操作。優(yōu)點是在DBMS內(nèi)完成加密功能,實現(xiàn)DBMS與加密功能的無縫銜接,因此加密功能強。
2.庫外加密。所謂庫外加密是指在DBMS之外進行加/解密操作,DBMS負責密文管理。一般在客戶端實現(xiàn)加/解密操作過程。與庫內(nèi)加密相比,庫外加密有其自身的特點:首先,加解密過程是在專門的加解密服務(wù)器中實現(xiàn)。其次,加密的數(shù)據(jù)與加密密鑰分開存放。
庫外加密也有其缺點:如數(shù)據(jù)庫一旦加密某些功能可能會受限制,比如數(shù)據(jù)庫的數(shù)據(jù)完整性受到破壞。
3.加密算法的選擇。加密算法分為非對稱加密和對稱加密,對稱式加密就是加密和解密使用同一個密鑰,通常稱之為“Session Key ”這種加密技術(shù)目前被廣泛采用,如美國政府所采用的DES加密標準就是一種典型的“對稱式”加密法,它的Session Key長度為56Bits。
非對稱式加密就是加密和解密所使用的不是同一個密鑰,通常有兩個密鑰,稱為“公鑰”和“私鑰”,它們兩個必需配對使用,否則不能打開加密文件。它的優(yōu)越性就在這里,因為對稱式的加密方法如果是在網(wǎng)絡(luò)上傳輸加密文件就很難把密鑰告訴對方,不管用什么方法都有可能被別竊聽到。而非對稱式的加密方法有兩個密鑰,且其中的“公鑰”是可以公開的,也就不怕別人知道,收件人解密時只要用自己的私鑰即可以,這樣就很好地避免了密鑰的傳輸安全性問題。
在加密實施過程中,無論選擇什么加密算法都應(yīng)當基于下述原則:
(1)算法的安全強度需滿足數(shù)據(jù)保密性的要求;
(2)與明文數(shù)據(jù)相比,密文數(shù)據(jù)量(存儲空間)經(jīng)加密處理后不應(yīng)過量增長;
DBMS是數(shù)據(jù)庫系統(tǒng)管理系統(tǒng),數(shù)據(jù)庫系統(tǒng)存儲的信息及數(shù)據(jù)可以通過DMBS進行建立、使用及維護。通過這個數(shù)據(jù)庫系統(tǒng)管理系統(tǒng)為用戶帶來了更好的服務(wù)體驗及控制功能,實現(xiàn)了數(shù)據(jù)信息統(tǒng)一管理,并且DBMS有著:數(shù)據(jù)及信息的安全保護、數(shù)據(jù)和信息的故障診斷及恢復、數(shù)據(jù)的完整性檢測、數(shù)據(jù)及信息訪問及調(diào)取、查詢權(quán)限控制等功能。DBMS是使數(shù)據(jù)庫系統(tǒng)發(fā)揮功能的關(guān)鍵。
2信息管理
2.1概述
分析完數(shù)據(jù)庫系統(tǒng),接下來再針對信息管理進行分析,信息管理就是指利用先進信息技術(shù)手段,對信息和數(shù)據(jù)進行管理、規(guī)劃、組織、控制,使信息數(shù)據(jù)被更好地使用,籠統(tǒng)的定義就是對信息流和信息源進行控制和管理。在信息管理過程中要進行相關(guān)信息收集、加工、輸入、存儲、輸出、整理等工作。另一方面可以把信息管理(InformationManage-ment,IM信管)理解為:用戶利用相關(guān)信息技術(shù)、經(jīng)濟政策、法律和人文方法及手段對信息流(包括非正規(guī)信息流和正規(guī)信息流)進行控制和管理,提高信息使用效率及實現(xiàn)信息目的一種活動。隨著時代的進步科技的騰飛,計算機技術(shù)、通信技術(shù)、信息技術(shù)、互聯(lián)網(wǎng)技術(shù)被廣泛應(yīng)用,使人類社會發(fā)生著轉(zhuǎn)變,人類社會已經(jīng)開始向信息時代進化,信息時代的到來使經(jīng)濟和文化都向全球模式發(fā)展,互聯(lián)網(wǎng)信息資源開始被人們所依賴,人們每天都在靠互聯(lián)網(wǎng)獲取信息,并且信息的利益已經(jīng)開始影響社會經(jīng)濟發(fā)展,信息已經(jīng)被應(yīng)用在企業(yè)運營及管理上,信息已經(jīng)可以被理解成為一種非物質(zhì)社會資源,和其他的物質(zhì)資源一樣都在人類生活和工作中起著重要作用,甚至信息的利用將改變社會資源的分配方式,改變目前人們認知中的傳統(tǒng)生活方式及工作方式,把辦公引向無紙化辦公的現(xiàn)代辦公模式??梢哉f了解信息、信息科學、信息技術(shù)就是了解財富,掌握信息就是提升企業(yè)競爭力的有利手段,所以企業(yè)領(lǐng)導者必須把信息管理重視起來,就像重視財務(wù)管理、人力資源管理一樣,將信息管理工作放在企業(yè)管理工作第一線。
2.2信息管理在新時代下面臨的挑戰(zhàn)
2.2.1全球化加大信息量
經(jīng)濟的發(fā)展和社會的進步,直接影響著信息量,互聯(lián)網(wǎng)時代的到來,使經(jīng)濟和文化向著全球化方向發(fā)展,導致國際市場進出易頻繁,國家之間文化信息交流不斷,政府及民間組織接觸,都產(chǎn)生了大量的信息流,大大了提升了信息量,所以面對如此的的信息量,必須結(jié)合現(xiàn)代化先進的管理技術(shù)和計算機技術(shù)才能保證信息的利用目的得以實現(xiàn),信息管理手段改革迫在眉睫。
2.2.2信息傳播范圍廣泛、傳播速度快
信息全球化不僅僅增加了信息量,更加大了信息的傳播范圍,可以說在信息全球化的新時代下,信息的傳播范圍是無限大的,并且由于現(xiàn)在云技術(shù)、計算機技術(shù)、通信技術(shù)的飛速發(fā)展,使信息的傳播更是快上加快,信息的傳播可以用光速來形容,所以對于信息處理及管理的要求就不得不提高。
2.2.3新時代對信息處理及管理提出更高要求
新時代的到來為信息處理和管理增加了難度,全球化的信息種類和形式多種多用,千變?nèi)f化,并且很多數(shù)據(jù)都被相應(yīng)加密和保護,所以信息管理工作需要提出更高。另一方面,信息的處理方法也就越來越復雜,傳統(tǒng)的信息加工也在發(fā)生著變化,不再是簡單的計算、歸類、整理。與傳統(tǒng)信息加工不同,新時代下的信息加工還要運用數(shù)理統(tǒng)計、運籌學和人工智能等方法對信息進行處理。
2.2.4信息管理領(lǐng)域擴大
信息全球化把整個世界都連接了起來,并且全球每個領(lǐng)域都開始應(yīng)用信息化,全球文化經(jīng)濟大融合下,信息管理從科學角度已經(jīng)涉及經(jīng)濟領(lǐng)域、教育領(lǐng)域、人文領(lǐng)域、互聯(lián)網(wǎng)領(lǐng)域、餐飲領(lǐng)域、醫(yī)學領(lǐng)域等等;技術(shù)層面里說信息管理涉及的技術(shù)有:自動化技術(shù)、互聯(lián)網(wǎng)技術(shù)、存儲技術(shù)、通信技術(shù)、計算機技術(shù)等等??梢哉f信息管理已經(jīng)變成了一個既復雜又系統(tǒng)化的工程。面對新時代對信息管理的要求,信息管理面臨著挑戰(zhàn),信息管理應(yīng)結(jié)合先進技術(shù)并加大改革力度。
3數(shù)據(jù)庫系統(tǒng)在信息管理中的作用
3.1存儲信息
通過分析可以知道什么是數(shù)據(jù)庫系統(tǒng),形象地說數(shù)據(jù)庫系統(tǒng)就是一個“倉庫”,用來儲蓄信息的倉庫,由于信息全球化,加大了信息量,而龐大的信息量是需要管理和控制的,數(shù)據(jù)庫系統(tǒng)則實現(xiàn)了對信息拷貝、存儲管理。并且數(shù)據(jù)庫系統(tǒng)不是單純地對信息進行存儲,在存儲過程中還可將信息進行整理、分類,并且分給數(shù)據(jù)一個獨有的號牌,形象地說,用戶可以通過這個號牌來直接對該信息進行調(diào)取,避免了繁瑣的查找工作,并且如此大的信息量下,如果沒有數(shù)據(jù)庫系統(tǒng)的幫助進行信息調(diào)取基本無法實現(xiàn)。這個倉庫是智能化的,能夠自動對信息進行存儲優(yōu)化,有效地解決了信息冗余問題,避免了重復存儲。另一方面,利用這一系統(tǒng),就算再大的信息量也不怕,因為數(shù)據(jù)庫系統(tǒng)作為倉庫是無限大的,可以實現(xiàn)無限存儲,數(shù)據(jù)庫作為一個智能的大倉庫,可以起到信息存儲作用。
3.2共享與整合信息
信息的傳播和利用對于信息很重要,如果信息無法被利用,說明這是無用信息,所以信息的廣泛應(yīng)用也是信息管理應(yīng)該做到的,數(shù)據(jù)庫系統(tǒng)的共享功能,有效地提高了信息利用率,數(shù)據(jù)庫系統(tǒng)向所有有權(quán)限的用戶提供了共享的信息管理平臺,實現(xiàn)了多用戶的提取、查詢、調(diào)用、利用,使信息管理效率得到了提高,使信息更具靈活性,滿足了多用戶需求,實現(xiàn)了信息利用目的,數(shù)據(jù)庫系統(tǒng)的共享技術(shù)為信息管理帶了新轉(zhuǎn)機。另一方面,數(shù)據(jù)庫系統(tǒng)的信息整合功能,也不同于以往的文件系統(tǒng),相比文件系統(tǒng),數(shù)據(jù)庫系統(tǒng)更智能,這個智能的倉庫通過信息的存儲結(jié)構(gòu)及屬性,對信息進行整合和加工,使信息成為一個整體卻又不失去獨立性,既可實現(xiàn)單獨調(diào)取又可進行整體調(diào)整,數(shù)據(jù)庫系統(tǒng)的信息整合功能使信息管理更直觀、更高效、更智能、更科學、更方面。數(shù)據(jù)庫不僅僅實現(xiàn)了信息共享更實現(xiàn)了信息整合。
3.3加強信息質(zhì)量及安全保護
數(shù)據(jù)庫系統(tǒng)不是簡單地把數(shù)據(jù)存儲起來,數(shù)據(jù)庫系統(tǒng)的安全性有效的保障了信息安全,防止了信息的損害及流失。數(shù)據(jù)庫系統(tǒng)對信息進行安全保護時,會對數(shù)據(jù)和信息進行故障診斷及恢復和完整性檢測,保障信息的完成,增加了信息可用性,提高了信息管理質(zhì)量。另一方面,數(shù)據(jù)庫系統(tǒng)有著加密功能,信息的安全對企業(yè)來說很重要,信息管理的主要基本目的就是信息安全,因為很多信息中都包含著商業(yè)機密等等,足以影響企業(yè)命運,而數(shù)據(jù)庫系統(tǒng)的信息加密功能起到了信息保護的作用。
4結(jié)語
關(guān)鍵詞:硬件優(yōu)化;SQL質(zhì)量優(yōu)化;操作系用參數(shù)設(shè)置
1. 引言
Oracle數(shù)據(jù)庫是由SUN公司開發(fā)的一種具有高穩(wěn)定性、高安全性、高兼容性的大型關(guān)系型數(shù)據(jù)庫,目前在通信、醫(yī)療、教育等行業(yè)得到了廣泛應(yīng)用,已逐漸成為企業(yè)信息化建設(shè)的重要數(shù)據(jù)庫平臺。Oracle數(shù)據(jù)庫在為各種應(yīng)用提供服務(wù)的同時,也保存并管理了大量的業(yè)務(wù)數(shù)據(jù)。要使Oracle數(shù)據(jù)庫適應(yīng)應(yīng)用需求,并能有效管理和利用由各業(yè)務(wù)系統(tǒng)產(chǎn)生積累的數(shù)據(jù),對Oracle數(shù)據(jù)庫優(yōu)化顯得尤為重要。
2. 影響數(shù)據(jù)庫性能原因
Oracle 數(shù)據(jù)庫系統(tǒng)性能是否能夠充分發(fā)揮主要依賴于數(shù)據(jù)庫服務(wù)器性能、數(shù)據(jù)庫配置、網(wǎng)絡(luò)環(huán)境、應(yīng)用程序性能等幾個主要方面。[1]
(1)數(shù)據(jù)庫服務(wù)器性能
數(shù)據(jù)庫服務(wù)器是系統(tǒng)的關(guān)鍵因素,它的性能決定了整個數(shù)據(jù)庫系統(tǒng)的性能。數(shù)據(jù)庫服務(wù)器的性能主要取決于服務(wù)器上運行的操作系統(tǒng)以及服務(wù)器的硬件配置情況,相同環(huán)境下服務(wù)器的性能越好,數(shù)據(jù)庫的性能也就越好。
(2)數(shù)據(jù)庫配置
數(shù)據(jù)庫配置情況直接決定了數(shù)據(jù)庫的性能優(yōu)劣,是數(shù)據(jù)庫性能優(yōu)化的核心也是最主要的部分。主要包括共享池的設(shè)置、磁盤管理的設(shè)置、系統(tǒng)參數(shù)設(shè)置。
(3)網(wǎng)絡(luò)環(huán)境
應(yīng)用程序與數(shù)據(jù)庫服務(wù)器之間需要通過網(wǎng)絡(luò)來進行交互,網(wǎng)絡(luò)的性能,特別是網(wǎng)絡(luò)輸入輸出的帶寬對整個系統(tǒng)性能有重要的影響。
(4)應(yīng)用程序?qū)崿F(xiàn)。
應(yīng)用的交互方法對數(shù)據(jù)庫性能也有很大的影響,特別是SQL語句的應(yīng)用、數(shù)據(jù)庫連接方式的選擇、數(shù)據(jù)庫端程序設(shè)計以及數(shù)據(jù)庫對象的使用情況等,都影響系統(tǒng)的執(zhí)行效率。本文主要討論通過對數(shù)據(jù)庫的硬件優(yōu)化,操作系用參數(shù)的設(shè)置,用戶SQL質(zhì)量優(yōu)化來提高數(shù)據(jù)庫性能。[3]
3. 優(yōu)化方式
(1)通過數(shù)據(jù)庫硬件的優(yōu)化
CPU:在任何機器中CPU的數(shù)據(jù)處理能力往往是衡量計算機性能的一個標志,而ORACLE是一個提供并行能力的數(shù)據(jù)庫系統(tǒng),在CPU方面的要求就比較高了,如果運行隊列數(shù)目超過了CPU處理的數(shù)目,性能就會下降,通過適當增加CPU的數(shù)量可以解決隊列阻塞的問題;
內(nèi)存:衡量機器性能的另外一個指標,內(nèi)存和我們在建數(shù)據(jù)庫中的交換區(qū)進行數(shù)據(jù)的交換,讀數(shù)據(jù)時,磁盤I/O必須等待物理I/O操作完成,在出現(xiàn)ORACLE的內(nèi)存瓶頸時,我們第一個要考慮的是增加內(nèi)存,I/O的響應(yīng)時間是影響ORACLE性能的主要參數(shù);
網(wǎng)絡(luò)環(huán)境:NET*SQL負責數(shù)據(jù)在網(wǎng)絡(luò)上的來往,大量的SQL會令網(wǎng)絡(luò)速度變慢。10M的網(wǎng)卡和100的網(wǎng)卡就對NET*SQL有非常明顯的影響,交換機等網(wǎng)絡(luò)設(shè)備的性能對網(wǎng)絡(luò)的影響也很明顯。所以優(yōu)化網(wǎng)絡(luò)環(huán)境是提交SQL交互的一個重要手段;[4]
(2)操作系統(tǒng)參數(shù)設(shè)置
DBA可以通過對操作系統(tǒng)以下參數(shù)做調(diào)整來優(yōu)化Oracle數(shù)據(jù)庫
bufpages 對buffer空間不按靜態(tài)分配,采用動態(tài)分配的方式
dbc_max_pct 加大最大動態(tài)buffer空間所占物理內(nèi)存的百分比,以滿足應(yīng)用系統(tǒng)的讀寫命中率的需要
desfree 提高開始交換操作的最低空閑內(nèi)存下限,保障系統(tǒng)的穩(wěn)定性,防止出現(xiàn)不可預見的系統(tǒng)崩潰
fs_async 允許進行磁盤異步操作,提高CPU和磁盤的利用率
lotsfree 提高系統(tǒng)解除換頁操作的空閑內(nèi)存的上限值,保證應(yīng)用程序有足夠的可用內(nèi)存空間。
maxssiz_64bit 加大最大堆棧段的大?。?4位操作系統(tǒng))
Minfree 提高停止交換操作的自由內(nèi)存的上限
Shmem 允許進行內(nèi)存共享,以提高內(nèi)存的利用率
Shmmax 設(shè)置最大共享內(nèi)存段的大小,完全滿足目前的需要
Timeslice 由于系統(tǒng)的瓶頸主要反映在磁盤I/O上,因此降低時間片的大小,一方面可避免因磁盤I/O不暢造成CPU的等待,從而提高了CPU的綜合利用率。另一方面減少了進程的阻塞量。
unlockable_mem 提高了不可鎖內(nèi)存的大小,使可用于換頁和交換的內(nèi)存空間擴大,用以滿足系統(tǒng)對內(nèi)存管理的要求。
(3)應(yīng)用服務(wù)SQL質(zhì)量的優(yōu)化
我們可以調(diào)整應(yīng)用程序的SQL質(zhì)量來提高Oracle性能。在SQL語句中我們要盡量避免全表掃描語句的出現(xiàn),全表掃描會導致大量的I/O,造成資源緊張。合理的建立和使用索引,當一個表的索引達到4個以上時,Oracle的性能可能依舊改善不了,因為OLTP系統(tǒng)每表超過5個索引即會降低性能,而且在一個SQL中,Oracle從不能使用超過5個索引;當我們用到GROUP BY和ORDER BY時,ORACLE就會自動對數(shù)據(jù)進行排序,當排序不能在我們給定的排序區(qū)完成時,Oracle就會在磁盤中進行排序,也就是我們講的臨時表空間中排序,過多的磁盤排序?qū)頵ree buffer waits 的值變高,而這個區(qū)間并不只是用于排序的。[2]因而select、update、delete 語句中的子查詢應(yīng)當有規(guī)律地查找少于20%的表行。如果一個語句查找的行數(shù)超過總行數(shù)的20%,它將不能通過使用索引獲得性能上的提高。索引可能產(chǎn)生碎片,因為記錄從表中刪除時,相應(yīng)也從表的索引中刪除。表釋放的空間可以再用,而索引釋放的空間卻不能再用頻繁進行刪除操作的被索引的表,應(yīng)當階段性地重建索引,以避免在索引中造成空間碎片。
4. 結(jié)束語
Oracle數(shù)據(jù)庫系統(tǒng)性能優(yōu)化與調(diào)整是一個復雜、繁瑣的系統(tǒng)工程,貫穿于數(shù)據(jù)庫系統(tǒng)開發(fā)的整個過程。數(shù)據(jù)庫系統(tǒng)的調(diào)整,包括硬件、操作系統(tǒng)、系統(tǒng)應(yīng)用語句等幾個方面,這幾個方面直接決定了整個數(shù)據(jù)庫系統(tǒng)的性能,應(yīng)該利用各種性能優(yōu)化與調(diào)整工具進行反復的調(diào)整、比較以消除瓶頸,獲得系統(tǒng)最優(yōu)性能。
參考文獻
[1] 騰永昌.Oracle9i 數(shù)據(jù)庫管理員使用大全[M].北京:清華大學出版社
[2] 柳丹.Oracle PL/SQL面向?qū)ο筇匦訵eb應(yīng)用研究[J].計算機技術(shù)與發(fā)展
西南空管局氣象中心數(shù)據(jù)庫室作為全國民航氣象數(shù)據(jù)傳輸?shù)慕Y(jié)點,主要業(yè)務(wù)工作為維護位于西南空管局氣象中心的民航氣象數(shù)據(jù)庫系統(tǒng)(以下稱為系統(tǒng))的正常運行。這套系統(tǒng)在接收由北京下發(fā)的全球民航氣象資料的同時向西南地區(qū)各個機場傳輸這些資料,同時還為西南地區(qū)民航行業(yè)用戶提供各種數(shù)據(jù)服務(wù)。可見該系統(tǒng)在西南地區(qū)民航氣象業(yè)務(wù)運行中的重要性,如何對這套系統(tǒng)做好維護工作則是數(shù)據(jù)庫室日常業(yè)務(wù)工作的重點和難點。
2業(yè)務(wù)運行現(xiàn)狀及需求
目前數(shù)據(jù)庫室負責維護的系統(tǒng)為7*24小時不間斷運行,故要求維護人員也需要7*24小時在崗值守,保障氣象數(shù)據(jù)庫業(yè)務(wù)的正常運行。鑒于以上情況,數(shù)據(jù)庫室系統(tǒng)維護人員采取值班制度,進行24小時輪班。一般情況下當班人員的日常工作有:在每日早上、下午、晚上以及第二天凌晨對系統(tǒng)進行四次定時巡檢;并對系統(tǒng)的任何突況要及時響應(yīng)、上報和處理;還要負責氣象中心其他信息設(shè)備的日常維護以及值班日記的填寫和記錄。目前數(shù)據(jù)庫室的業(yè)務(wù)運行存在著一些不足,主要表現(xiàn)在:(1)由于系統(tǒng)的各種設(shè)備包括小型機、服務(wù)器、通信鏈路、通信設(shè)備、安全設(shè)備和終端設(shè)備。對其進行一次日常巡檢看似簡單,實則有較大的工作量,外加中途對其他事情的處理,一次日常巡檢可能就會拖上較長時間,容易造成值班員不能準確把握各個設(shè)備的實際運行情況;(2)在值班員外出吃飯,晚上休息時間,突發(fā)事件往往是通過用戶告知,故對突況的應(yīng)對處理會花費更多時間;(3)日常巡檢的結(jié)果為離散樣本,具有間斷性,不能準確描述系統(tǒng)在24小時內(nèi)的詳細運行狀態(tài);(4)對氣象數(shù)據(jù)庫室值班員而言,雖然維護好系統(tǒng)是自身的核心和重點工作,但是經(jīng)常有無法避免的其他工作,不能將所有注意力都集中在系統(tǒng)的運行情況上。針對以上實際情況,數(shù)據(jù)庫室的系統(tǒng)維護需求為:(1)對系統(tǒng)進行24小時不間斷監(jiān)控,如果有突發(fā)事件立即提醒值班員;(2)對系統(tǒng)的運行狀況進行不間斷記錄,讓值班員可以隨時了解系統(tǒng)在某一個時刻的運行狀況;(3)值班員需要隨時掌握數(shù)據(jù)庫系統(tǒng)的運行情況。
3維護整合方案設(shè)計
按照上述的數(shù)據(jù)庫室業(yè)務(wù)運行現(xiàn)狀以及需求分析,將針對數(shù)據(jù)庫值班員的系統(tǒng)維護整合方案設(shè)計為三個部分:第一是實時監(jiān)控;第二是實時監(jiān)控的移動終端;第三是系統(tǒng)的歷史和實時快照顯示和分析。具體方案如圖1顯示。其中實時監(jiān)控系統(tǒng)運行在PC終端上,定時自動通過遠程登陸和其他方式訪問系統(tǒng)中的各個設(shè)備,獲取設(shè)備硬件狀態(tài)、系統(tǒng)狀態(tài)、業(yè)務(wù)狀態(tài)和網(wǎng)絡(luò)狀態(tài)等。并將獲得的信息按照預先定義的閾值進行排查,在固定顯示設(shè)備上顯示,并提醒值班員注意需要注意的信息。同時將顯示的信息通過單向網(wǎng)閘推送到外網(wǎng)的移動終端服務(wù)器上,讓運行在智能手機上的監(jiān)控移動端調(diào)取相關(guān)信息,在移動顯示設(shè)備上顯示。并且監(jiān)控系統(tǒng)定時獲取一份對系統(tǒng)的詳細信息,形成系統(tǒng)快照,并將快照信息存入監(jiān)控服務(wù)器中的數(shù)據(jù)庫中,供電子值班日記系統(tǒng)調(diào)用。電子值班日記系統(tǒng)可以調(diào)出任意時刻的系統(tǒng)快照供值班員查看分析。按照以上方案,電子監(jiān)控系統(tǒng)能夠24小時不間斷的對系統(tǒng)進行監(jiān)控,有突發(fā)事件能夠立即讓值班員了解相關(guān)情況;由于還具有移動監(jiān)控終端,讓值班員在外出吃飯和晚間休息時,也能隨時了解到系統(tǒng)的運行情況。電子值班日記對系統(tǒng)快照的調(diào)取,能夠讓值班員隨時了解任意時刻系統(tǒng)的運行情況,就能解決值班員在解決其他問題時不能及時對系統(tǒng)進行巡檢的問題。并且值班員能夠從存儲的大量系統(tǒng)快照中進行數(shù)據(jù)挖掘,獲取設(shè)備與設(shè)備之間的關(guān)聯(lián)信息或者某項故障發(fā)生前的設(shè)備信息等有價值的信息。
4維護整合方案實現(xiàn)
為了易于維護和修改,實時監(jiān)控端采用C#編程語言,在WINDOWS操作系統(tǒng)下的VS2008平臺上開發(fā),并需要FRAME⁃WORK4.0支持,程序獨立運行。以SSH協(xié)議登錄各個服務(wù)器,在后臺自動采集各項數(shù)據(jù),本地收到數(shù)據(jù)后進行分析處理,將錯誤信息向值班員報警并寫入錯誤日志,將正常情況生成報表供值班員了解當前氣象數(shù)據(jù)庫系統(tǒng)的運行情況。實時監(jiān)控端的界面如圖2所示,提示界面如圖3所示。移動監(jiān)控端采用JAVA編程,在WINDOWS操作系統(tǒng)上的ANDROIDSTUDIO平臺上開發(fā)。顯示收到的正確和錯誤信息,并對錯誤信息進行提醒,因此值班員注意。移動監(jiān)控端的界面如圖4所示。電子值班日記中的系統(tǒng)快照顯示部分采用C#語言,在WINDOWS操作系統(tǒng)下的VS2008平臺上的.NET框架下開發(fā),并需要FRAMEWORK4.0支持,需要電子值班日記的統(tǒng)一支持。顯示界面如圖5所示。
5維護整合方案運行效果
以上維護整合方案在數(shù)據(jù)庫室已經(jīng)經(jīng)過一年多的持續(xù)運行,在此期間,經(jīng)過使用人員的不斷反饋和根據(jù)業(yè)務(wù)發(fā)展的需要,具體細節(jié)也在不斷修改,使之滿足各項業(yè)務(wù)的實際需求。在該方案的運行后,數(shù)據(jù)庫室值班員能在第一時間主動發(fā)現(xiàn)系統(tǒng)在運行過程中發(fā)生的各項異常情況,且隨之能夠立即著手分析問題和解決問題,工作效率得到大幅提高,并對其他部門的業(yè)務(wù)影響降低到了最小。通過監(jiān)控移動端的運行,值班員在吃飯和休息期間也能隨時了解到數(shù)據(jù)庫系統(tǒng)的運行情況,尤其是晚上休息期間。根據(jù)歷史記錄分析,在監(jiān)控系統(tǒng)運行的這一年多以來,系統(tǒng)在晚上值班員休息期間累計發(fā)生異常情況共計19次,其中需要立即處理的異常情況13次,值班員在收到移動端的報警信息后,馬上前往辦公室解決相關(guān)異常。這13次異常的平均相應(yīng)時間為7分鐘,且這13次異常都為值班員主動發(fā)現(xiàn),響應(yīng)時間遠小于以前的半小時左右。在異常得到處理后,也未對其他部門的業(yè)務(wù)造成任何影響。通過對系統(tǒng)快照的查看,讓值班員能夠隨時了解系統(tǒng)的運行狀況,提前分析出系統(tǒng)的未來發(fā)展趨勢。根據(jù)統(tǒng)計數(shù)據(jù),值班員有6次得出磁盤空間使用率將滿的結(jié)論,提前清理磁盤空間;有11次得出ORACLE的SGA區(qū)使用率將滿的結(jié)論,提前清理ORACLE連接和對SGA區(qū)進行處理。真正讓系統(tǒng)達到了高效運行的目的。
6結(jié)論和展望
關(guān)鍵詞:dbms復制聯(lián)邦數(shù)據(jù)庫
1.引言
隨著經(jīng)濟的發(fā)展,企業(yè)的規(guī)模越來越大,其積累的信息也越來越多。存在著各部門所處理的信息多數(shù)只對本部門有效,僅有少數(shù)信息需給其它某些部門共享的問題。這種信息的分布性和獨立性要求對所處理的數(shù)據(jù)進行分類,使各部門既能獨立地處理本部門大多數(shù)數(shù)據(jù),也使部門間能協(xié)調(diào)處理跨部門的事務(wù)。在這種情況下,對整個企業(yè)建立一個完全的緊密耦合的分布式數(shù)據(jù)庫是很困難的,也是沒必要的,特別是大型企業(yè),這樣的數(shù)據(jù)庫的效率往往是很低的。
為解決這個問題,我們采用以下策略:每個部門使用一套緊密耦合的數(shù)據(jù)庫系統(tǒng),而在存在跨部門事務(wù)處理的數(shù)據(jù)庫系統(tǒng)間用一個協(xié)調(diào)器聯(lián)起來。這樣就組成了一個橫跨整個企業(yè),各部門高度自治的聯(lián)邦數(shù)據(jù)庫系統(tǒng)。
dm2是由華中理工大學數(shù)據(jù)庫多媒體技術(shù)研究所研制的數(shù)據(jù)庫管理系統(tǒng)。它采用客戶/服務(wù)器模型,客戶機與服務(wù)器,服務(wù)器與服務(wù)器均通過網(wǎng)絡(luò)互連,通過消息相互通訊,組成一個緊密耦合的分布式數(shù)據(jù)庫系統(tǒng)。它的工作流程如下:客戶機登錄到一臺服務(wù)器上,這臺服務(wù)器便成為它的服務(wù)器;它接收來自客戶機的消息,然后根據(jù)全局數(shù)據(jù)字典決定是自己獨立完成該操作,還是與其它服務(wù)器協(xié)作處理這條消息,處理完成之后,再由服務(wù)器將處理結(jié)果返回給客戶機。
而數(shù)據(jù)字典,作為記錄數(shù)據(jù)庫所有元數(shù)據(jù)的系統(tǒng)表,它向以上過程中提供各類有用的信息,引導它們向正確的方向運行,起著“指南針”的作用。它分為局部數(shù)據(jù)字典和全局數(shù)據(jù)字典。其中,局部數(shù)據(jù)字典用于記錄一個服務(wù)器站點中數(shù)據(jù)庫的控制信息,如表的模式,視圖的模式及各個數(shù)據(jù)區(qū)的的文件名等信息。全局數(shù)據(jù)字典用于記錄分布式數(shù)據(jù)庫系統(tǒng)中各個服務(wù)器站點上有關(guān)全局數(shù)據(jù)的控制信息,如服務(wù)器站點信息,各服務(wù)器站點的全局表名及表內(nèi)碼記錄,各服務(wù)器站點上的全局數(shù)據(jù)視圖名及視圖內(nèi)碼記錄,用戶名及口令記錄,用戶權(quán)限記錄等信息。各個局部數(shù)據(jù)字典可以各不相同,但為了保證在各個服務(wù)器上所看到的全局數(shù)據(jù)庫是一致的,因此,全局數(shù)據(jù)字典必須一致。我們所關(guān)心的是全局數(shù)據(jù)字典中的基表控制塊tv_ctrl_block,它的內(nèi)容主要包括:全局基表總數(shù),每個全局基表名和其對應(yīng)的表內(nèi)碼,該基表所在的服務(wù)器站點的編號等信息。它的功能是將各個服務(wù)器站點號與存儲在其上的表名及表內(nèi)碼聯(lián)系起來。這樣,服務(wù)器從客戶消息中找到被處理的表名,然后通過查詢基表控制塊tv_ctrl_block,就能知道該表存在哪個服務(wù)器上,以便將相關(guān)消息發(fā)給該服務(wù)器。
由于dm2上各個服務(wù)器站點的全局字典完全相同,任何全局表的信息都會記入全局字典。若用它來構(gòu)建一個企業(yè)的數(shù)據(jù)庫系統(tǒng),則大量只對企業(yè)某部門有用的信息將會充斥在各部門所有服務(wù)器的全局字典中,增加了冗余。而且,當對全局表進行ddl操作時,為了確保全局字典的一致性,須對所有服務(wù)器的全局字典進行加鎖。dm2對全局字典的封鎖方式是采用令牌環(huán)方式,即令牌繞虛環(huán)(非實環(huán))傳輸,某個服務(wù)器想對全局字典進行操作,必須等令牌到達該服務(wù)器才可以執(zhí)行。每個部門建立的全局表絕大多數(shù)只對本部門有用,當對這些表進行ddl操作時,卻要對所有服務(wù)器的全局字典進行封鎖,通過令牌來實現(xiàn)對全局字典的互斥訪問。假如,兩個部門都要分別對本部門的內(nèi)部表進行ddl操作,這應(yīng)該是可以并行處理的操作,現(xiàn)在卻只能串行執(zhí)行。而且,當服務(wù)器數(shù)目龐大時,每個服務(wù)器等待令牌的時間將會很長。這嚴重損害了數(shù)據(jù)庫的效率。
為彌補以上不足,在dm2的改進版本dm3中增加了協(xié)調(diào)器,用以聯(lián)接各個獨立的dm3數(shù)據(jù)庫子系統(tǒng),并協(xié)調(diào)各子系統(tǒng)間的各種關(guān)系,使各子系統(tǒng)既能高度自治地工作,又能進行有效的信息共享。
2.體系結(jié)構(gòu)
本系統(tǒng)可看作多個數(shù)據(jù)庫子系統(tǒng)被協(xié)調(diào)器聯(lián)起來的,高度自治的一個聯(lián)邦數(shù)據(jù)庫系統(tǒng)。其中,每個子系統(tǒng)獨立處理本系統(tǒng)內(nèi)部的事務(wù),而子系統(tǒng)間的信息共享由復制技術(shù)提供,副本間的一致性由協(xié)調(diào)器協(xié)調(diào)處理,處理所需的信息在初始化時寫入?yún)f(xié)調(diào)器的組間數(shù)據(jù)字典中。當對某子系統(tǒng)中的一份數(shù)據(jù)副本進行修改時,該子系統(tǒng)會將修改通知協(xié)調(diào)器,由協(xié)調(diào)器對該數(shù)據(jù)的其它副本進行修改,從而保證了所有副本的一致性。
由以上可知,子系統(tǒng)彼此并不直接接觸,而是各自都與協(xié)調(diào)器直接相聯(lián),由協(xié)調(diào)器統(tǒng)一管理子系統(tǒng)間的通信。這樣,當子系統(tǒng)對副本進行修改時,不必關(guān)心相應(yīng)的子系統(tǒng)處于何種狀態(tài),也不必等待回應(yīng)消息,以及異常處理,所有這些都由協(xié)調(diào)器進行管理。因此,既提高了系統(tǒng)運行的效率,也保證了子系統(tǒng)的獨立性。其體系結(jié)構(gòu)如下圖所示。
協(xié)調(diào)器主要有三大功能,首先,它對協(xié)調(diào)器和服務(wù)器進行初始化,并將有關(guān)信息存入組間字典;其次,它管理不同子系統(tǒng)間的通信,維護副本的一致性;最后,它在子系統(tǒng)出現(xiàn)崩潰時,進行異常管理及恢復工作。
dm3多數(shù)據(jù)庫系統(tǒng)體系結(jié)構(gòu)
3.主要策略
多個dm3系統(tǒng)間的信息共享是通過副本實現(xiàn)的,副本的一致性是由協(xié)調(diào)器來維持的,是一種弱一致性。通常,多數(shù)據(jù)庫系統(tǒng)間的一致性是通過協(xié)調(diào)器周期性地訪問服務(wù)器的日志來完成的。由于副本的更新帶有隨機性,因此,若采用這種方法,可能數(shù)據(jù)被修改多次,但其相對應(yīng)的副本仍未被修改,這樣就損害了數(shù)據(jù)的一致性;也可能數(shù)據(jù)并未被修改,但協(xié)調(diào)器已多次訪問了服務(wù)器的日志了,這樣就降低了系統(tǒng)的效率。
所以,本系統(tǒng)采用的方法是當數(shù)據(jù)被修改時,由服務(wù)器通知協(xié)調(diào)器有關(guān)信息,再由協(xié)調(diào)器通知相關(guān)系統(tǒng),修改相關(guān)數(shù)據(jù)。這樣,數(shù)據(jù)的修改及時(仍然是弱一致性),而協(xié)調(diào)器也不會在數(shù)據(jù)未被修改的情況下訪問服務(wù)器,提高了準確性。
為了使協(xié)調(diào)器正常工作,我們對底層數(shù)據(jù)庫管理系統(tǒng)dm2進行了修改。在基表控制塊tv_ctrl_block中增加一項isreplication。建表時,該項初始化為false;當為該表建立一個副本時,該項賦值為true。具體算法如下。
3.1初始化算法。
協(xié)調(diào)器:
從用戶或應(yīng)用程序接收待連接的兩個系統(tǒng)中的服務(wù)器名,需復制的表名;
分別登錄到兩個系統(tǒng)的服務(wù)器上;
向存有待復制表的服務(wù)器發(fā)預復制消息;
等待服務(wù)器消息;
若失敗,發(fā)一條失敗的消息給服務(wù)器和用戶或應(yīng)用程序,轉(zhuǎn)11);
若成功,從消息中取出待復制表的有關(guān)信息,根據(jù)這些信息,發(fā)一條建表消息給另一個系統(tǒng)的服務(wù)器;
等待服務(wù)器消息;
若失敗,發(fā)一條失敗的消息給服務(wù)器和用戶或應(yīng)用程序,轉(zhuǎn)11);
若成功,調(diào)數(shù)據(jù)轉(zhuǎn)移程序,進行數(shù)據(jù)復制;
將有關(guān)信息寫入組間字典。
退出。
服務(wù)器:
當服務(wù)器收到預復制消息后,將基表控制塊tv_ctrl_block中的isreplication賦為true。同時,取出待復制表的有關(guān)信息,組成應(yīng)答消息發(fā)給協(xié)調(diào)器。
當服務(wù)器收到失敗的消息后,將基表控制塊tv_ctrl_block中的isreplication賦為false。
3.2維護算法。
協(xié)調(diào)器:
從組間字典讀出相關(guān)信息,根據(jù)這些信息,登錄到相應(yīng)系統(tǒng)上;
等待消息;
從某系統(tǒng)的服務(wù)器上收到一條修改消息后,通過查找組間字典,確定該消息的目的地,然后將它轉(zhuǎn)發(fā)過去;
若失敗,定時重發(fā);
轉(zhuǎn)2);
服務(wù)器:
1)等待消息;
2)當收到某客戶或應(yīng)用程序的消息后,檢查它是否是修改數(shù)據(jù)的操作(如delete,update或insert等);
若不是,轉(zhuǎn)7);
若是,檢查基表控制塊tv_ctrl_block中的isreplication是否為true;
若不是,轉(zhuǎn)7);
若是,向協(xié)調(diào)器發(fā)修改消息;
繼續(xù)執(zhí)行服務(wù)器程序的其它部分。
3.3恢復算法。
若協(xié)調(diào)器所聯(lián)接的系統(tǒng)中有一個跨掉了,則對副本的修改無法及時地反映到跨掉的系統(tǒng)中來。這時,需要恢復算法來進行處理。
協(xié)調(diào)器:
當協(xié)調(diào)器發(fā)現(xiàn)有一個系統(tǒng)已經(jīng)崩潰后,采取以下步驟。
將與該系統(tǒng)相關(guān)的變量open賦值為false;
打開記時器;
等待消息;
若收到的消息是其它系統(tǒng)發(fā)出的修改崩潰了的系統(tǒng)上的副本的命令,則依次將這些消息存儲起來,轉(zhuǎn)3);
若收到的消息是記時器發(fā)出的時間到的消息,則向崩潰的系統(tǒng)發(fā)登錄命令;
若登錄成功,將open的值改為true;
將存儲的消息依次發(fā)送過去,轉(zhuǎn)9);
若登錄失敗,轉(zhuǎn)3);
退出。
4.結(jié)論
我們曾在三個dm3數(shù)據(jù)庫系統(tǒng)上,用兩個協(xié)調(diào)器進行聯(lián)接。結(jié)果,運行情況良好,各副本最終都能保證一致,且各副本間存在差異的時間間隔很短。另外,在出現(xiàn)異常的情況下,協(xié)調(diào)器也能正常工作。
主要參考文獻
1.周龍驤等,分布式數(shù)據(jù)庫管理系統(tǒng)實現(xiàn)技術(shù),科學出版社,1998。
關(guān)鍵詞 分布式數(shù)據(jù)庫系統(tǒng);安全策略
中圖分類號:TP311 文獻標識碼:A 文章編號:1671-7597(2013)17-0040-01
1 分布式管理信息系統(tǒng)的安全問題
分布式管理系統(tǒng)所面臨的安全問題同普通管理信息系統(tǒng)相仿,主要包括:物理安全、數(shù)據(jù)庫安全、管理系統(tǒng)的安全等。接下來對分布式環(huán)境和不可信環(huán)境下的安全問題進行探討。
1.1 中心系統(tǒng)安全問題
一般意義上,子系統(tǒng)數(shù)據(jù)都依附于中心系統(tǒng)基礎(chǔ)數(shù)據(jù)。根據(jù)近年來的實踐,面臨的安全問題主要有:第三方企圖竊取數(shù)據(jù)包,并以此為藍本創(chuàng)建新型數(shù)據(jù)庫或間接獲得子系統(tǒng)的相關(guān)安裝程序,即將自己偽裝成接收方;或者對數(shù)據(jù)包內(nèi)部的重要數(shù)據(jù)信息進行惡意修改,導致接收方讀取困難。在分發(fā)業(yè)務(wù)數(shù)據(jù)時面臨著類似的安全問題,子系統(tǒng)向中心系統(tǒng)提供業(yè)務(wù)數(shù)據(jù)。在這個數(shù)據(jù)交換過程中,有可能出現(xiàn)下列問題:數(shù)據(jù)包來源不明;數(shù)據(jù)包發(fā)出者不承認自身操作;傳輸過程中有人惡意介入,修改數(shù)據(jù)包敏感信息。
1.2 子系統(tǒng)安全問題
數(shù)據(jù)包來源偽造、數(shù)據(jù)包被植入惡意程序常常威脅到子系統(tǒng)的安全運行。不可信賴的子系統(tǒng)運行環(huán)境對分布式管理信息系統(tǒng)造成的安全威脅最大。子系統(tǒng)網(wǎng)絡(luò)環(huán)境風險高、操作系統(tǒng)防御能力低,黑客很容易破解防線,進行木馬程序植入、數(shù)據(jù)竊取活動。這其中,如果使用子系統(tǒng)的人員不可信任,將是一大潛在威脅。他們很容易利用自己的權(quán)限越過子系統(tǒng)防火墻,竊取重要信息。例如,目前注冊會計師考試一般采用計算機答題,考場相關(guān)人員可能在開考前事先從數(shù)據(jù)庫中盜取試題答案,或者直接修改成績,一般只有權(quán)限較高的考場數(shù)據(jù)庫管理員才擁有數(shù)據(jù)庫的用戶密碼。子系統(tǒng)處在不可信環(huán)境中時,系統(tǒng)安全無法通過操作系統(tǒng)和數(shù)據(jù)系統(tǒng)安保措施獲得保證,這時系統(tǒng)本身的安全保護能力成為保護系統(tǒng)安全的唯一手段。
2 分布式數(shù)據(jù)庫安全策略
2.1 身份驗證
為了保障數(shù)據(jù)庫的安全、防止數(shù)據(jù)庫被不法分子攻擊,在客戶訪問數(shù)據(jù)庫時有必要對客戶的身份進行識別,而且客戶利用數(shù)據(jù)庫進行登錄、錄入、修改、傳輸?shù)炔僮鲿r都要進行不同程度的身份驗證。以Kerberos協(xié)議為例,它在工作的過程中,每個服務(wù)站只有從密鑰管理中心得到即時通信密鑰,才能獲得與目標站點之間的通信權(quán)限。密鑰管理中心數(shù)據(jù)處理任務(wù)繁重,在進行復雜密鑰大規(guī)模分發(fā)、調(diào)配時,很容易引起系統(tǒng)崩潰,嚴重降低系統(tǒng)性能,并且系統(tǒng)內(nèi)部必須有一個管理中心,它能夠為所有站點信任,又要具有很好的穩(wěn)定性。因為應(yīng)用條件較為苛刻,該協(xié)議應(yīng)用場合受限較大。
實際中,為了提高工作效率,盡量簡化密鑰分發(fā),人們開始應(yīng)用雙向身份驗證協(xié)議來進行身份驗證。該技術(shù)的原理是:每個站點都具有一個公鑰,站點內(nèi)部則保存各自的私鑰,它通過一種特殊的渠道將公鑰公布在其它系統(tǒng)上。這種新的身份驗證協(xié)議的出現(xiàn),使得任意兩個站點進行雙向身份驗證成為可能。
2.2 通信保密
數(shù)據(jù)在傳輸?shù)倪^程中,客戶與服務(wù)器之間必須完成一系列的身份驗證才能實現(xiàn)數(shù)據(jù)的傳輸。在數(shù)據(jù)傳輸時,為了防止傳輸?shù)臄?shù)據(jù)被人竊聽或者數(shù)據(jù)重復被發(fā)送導致系統(tǒng)繁忙,發(fā)送方和接收方需要一條專屬接收渠道,完成對數(shù)據(jù)包的加密、傳輸、接收、解密等工作。分布式數(shù)據(jù)系統(tǒng)容量較大,如果采用的加密算法非常復雜,會導致系統(tǒng)性能的下降。在實際應(yīng)用中,常用的做法是在數(shù)據(jù)傳輸?shù)倪^程中添加加密卡、配備安全路由器,并在通信軟件中安裝一些安全軟件。
2.3 訪問控制
在保障分布式數(shù)據(jù)庫系統(tǒng)安全的過程中,有時需要控制系統(tǒng)用戶的訪問,具體的操作方式有自主訪問授權(quán)控制和強制訪問授權(quán)控制這兩種。前一種控制方式由管理員直接設(shè)立一個控制訪問的表,在表中定義了用戶訪問的權(quán)限,規(guī)定用戶的哪些操作是被允許的,哪些操作是嚴禁進行的。后者給系統(tǒng)用戶和數(shù)據(jù)對象設(shè)定分明的安全等級,用戶的操作是否被禁止由用戶操作項目的安全等級來決定。在某些數(shù)據(jù)庫管理系統(tǒng)中,系統(tǒng)為了防止用戶的訪問超越自己的權(quán)限而禁止用戶直接訪問數(shù)據(jù)庫。用戶如果需要訪問數(shù)據(jù)庫,必須填寫訪問申請,當用戶的訪問申請經(jīng)過相關(guān)的審核后,再由系統(tǒng)為用戶指定一個代替用戶完成相應(yīng)的用戶操作,并將查詢結(jié)果反饋給用戶。
數(shù)據(jù)對象的綜合性越高,為數(shù)據(jù)訪問設(shè)定的權(quán)限就越嚴格。數(shù)據(jù)庫的安全性得到更大的保障的同時也給數(shù)據(jù)庫系統(tǒng)的管理造成了影響,尤其是分布式數(shù)據(jù)庫系統(tǒng)的管理。由于它的數(shù)據(jù)量和用戶量都比較大,在對用戶的訪問進行控制的過程中,系統(tǒng)要處理的數(shù)據(jù)非常多。在實際應(yīng)用的過程中,由于很多用戶的權(quán)限差別都不是很大,系統(tǒng)可以按照用戶的權(quán)限來定義角色,一個角色能定義不同的用戶,一個用戶也可以同時擁有幾個不同的角色。這樣不僅不會使對系統(tǒng)的運行造成影響,而且大大減輕了系統(tǒng)的壓力。
2.4 庫文加密
隨著信息技術(shù)的發(fā)展,黑客也越來越多,許多黑客非常擅長利用數(shù)據(jù)庫系統(tǒng)的安全漏洞,想方設(shè)法繞過數(shù)據(jù)庫的安全網(wǎng),竊取數(shù)據(jù)庫的數(shù)據(jù)。為了防止黑客的入侵,對庫文進行加密處理是比較常用的辦法。具體的操作方法是在分布式數(shù)據(jù)庫外層設(shè)置一個具備加密解密能力的加密層。庫文加密系統(tǒng)應(yīng)具有很好的靈活性,能根據(jù)不同的操作系統(tǒng)的不同要求,提供不同等級的安全級別、不同類型的加密算法給用戶進行自主選擇。除此之外,系統(tǒng)應(yīng)該具備隨時對加密數(shù)據(jù)進行調(diào)整的能力,平衡數(shù)據(jù)庫的訪問速度和安全性。
2.5 密碼體制和密碼管理
以上提到的幾種加強分布式數(shù)據(jù)庫系統(tǒng)安全的措施中都利用了加密和解密算法。系統(tǒng)在應(yīng)用算法時應(yīng)該根據(jù)它們算法不同的功能,在操作中按要求選擇適合的算法。在分布式數(shù)據(jù)庫中用到的公鑰和密鑰的管理也要規(guī)范,以確保公鑰和密鑰只能由指定的人知曉。
2.6 防范惡意代碼入侵
因為程序惡意代碼而產(chǎn)生的安全問題層出不窮。除了以上提到的一些措施外,還應(yīng)注意加強對程序編譯人員的教育和管理,加強他們的守法意識。使用單位要加強軟件測試和代碼檢查工作;做好工作人員的技術(shù)培訓工作,防患于未然。
參考文獻
[1]展巍,朱端.基于物聯(lián)網(wǎng)的分布式實時數(shù)據(jù)庫研究[J].電子元器件應(yīng)用,2011(03).
[2]左朝樹,龐飛,易濤.分布式一體化安全數(shù)據(jù)庫系統(tǒng)體系結(jié)構(gòu)[J].通信技術(shù),2011(05).
[關(guān)鍵詞]VBS腳本 ACCESS數(shù)據(jù)庫 VB
中圖分類號:G250.74 文獻標識碼:A 文章編號:1009-914X(2015)05-0363-01
一、引言
在鋼鐵工業(yè)發(fā)展的今天,要提高鋼鐵企業(yè)核心競爭力和可持續(xù)發(fā)展力,必須以信息化帶動工業(yè)化,但由于管理信息層和過程控制層所服務(wù)的對象和實現(xiàn)的功能不同,因此就在管理信息層和過程控制層出現(xiàn)斷層,管理信息層很難直接得到第一手的生產(chǎn)數(shù)據(jù),必然會產(chǎn)生諸多問題:
1、人工抄送報表的方式不僅繁瑣而且容易出錯,這就是管理層不能及時準確地了解現(xiàn)場,制定的生產(chǎn)策略也就產(chǎn)生了滯后性,不利于生產(chǎn)的穩(wěn)定高效。
2、對于重要考核參數(shù)的記錄與計算采用手工方式實現(xiàn),不可避免人為因素造成的數(shù)據(jù)偏差,不能完全客觀地反映生產(chǎn)狀況,從而為企業(yè)造成損失。
3、在進行事故分析、改進工藝、優(yōu)化生產(chǎn)時,傳統(tǒng)模式不便于數(shù)據(jù)的分析和查詢。
現(xiàn)在的高爐冶煉生產(chǎn)過程實現(xiàn)了全部采用PLC自動化控制系統(tǒng),能夠?qū)ιa(chǎn)的實時情況進行監(jiān)控。為了更好的發(fā)掘爐子的潛能,提高高爐冶煉時更高的利用系數(shù),就需要生產(chǎn)的管理人員、操控人員精準的掌握原料的消耗情況統(tǒng)計,進行噸鐵成本核算和生產(chǎn)指標考核,這就要求對高爐各個生產(chǎn)區(qū)域進行設(shè)備運行的狀態(tài)掌握,還要對設(shè)備數(shù)據(jù)進行采集,并對采集到的大量數(shù)據(jù)進行存檔,方便指導以后的生產(chǎn)實踐并預測未來的發(fā)展趨勢。所以,就需要開發(fā)二級數(shù)據(jù)庫系統(tǒng),實現(xiàn)生產(chǎn)過程的數(shù)據(jù)入庫查詢。為ERP系統(tǒng)的L3級和L4級提供有利的數(shù)據(jù)保障。
二、系統(tǒng)設(shè)計
為了解決以上各種問題,只有開發(fā)基于實時數(shù)據(jù)庫系統(tǒng)的生產(chǎn)系統(tǒng),才能從根本上解決問題。現(xiàn)在國內(nèi)大多數(shù)從事一級自動化程序編程調(diào)試人員作不到把生產(chǎn)數(shù)據(jù)存儲到數(shù)據(jù)庫,需要專門編程二級的程序開發(fā)人員,而且隨著現(xiàn)在生產(chǎn)管理的科學化、信息化。所以,我們極為迫切的開發(fā)能夠存儲數(shù)據(jù)的軟件平臺,跟上自動化控制領(lǐng)域前沿的自主數(shù)據(jù)庫系統(tǒng)。見圖1。
1、通過以太網(wǎng)的TCP/IP協(xié)議與一級PLC系統(tǒng)進行通訊,通過一級PLC系統(tǒng)的監(jiān)控軟件把高爐礦槽上料的消耗數(shù)據(jù)、高爐爐頂布料設(shè)備的運行數(shù)據(jù)存儲到Access數(shù)據(jù)庫中。利用VB編程開發(fā)軟件編制操控界面,其中礦槽稱斗重量、爐頂布料方式等不但可以在畫面中顯示,還將數(shù)據(jù)保存到數(shù)據(jù)庫并生成報表,便于較長時間連續(xù)地監(jiān)控、掌握實際生產(chǎn)過程,能夠保證生產(chǎn)的順利進行。
2、后臺的數(shù)據(jù)庫采用的Access數(shù)據(jù)庫,前臺的應(yīng)用程序采用Microsoft Visual Basic 6.0進行編制。強大的通訊處理是組態(tài)軟件最關(guān)鍵的部分,其工作性能的好壞直接關(guān)系到整個系統(tǒng)的優(yōu)劣,精心設(shè)計了一套性能優(yōu)越的通訊系統(tǒng),在速度、易用、移植等方面獨具特色。
三、系統(tǒng)功能和關(guān)鍵技術(shù)
1、如何實現(xiàn)數(shù)據(jù)服務(wù)器與現(xiàn)場控制器系統(tǒng)之間的聯(lián)網(wǎng)數(shù)據(jù)通訊,即數(shù)據(jù)庫實現(xiàn)L1和L2之間的自動信息交換。使用功能強大的數(shù)據(jù)庫連接程序,通過時間或事件,把現(xiàn)場的實時數(shù)據(jù)存儲到您指定的數(shù)據(jù)庫中。WINCC上位機軟件通過時間和事件來觸發(fā)數(shù)據(jù)庫連接,可以定時與數(shù)據(jù)庫進行連接,也可以通過某個現(xiàn)場的事件來觸發(fā),能達到毫秒級的數(shù)據(jù)采集速度,具有無與倫比的性能。建立access表(圖2)。
2、Microsoft Visual Basic 6.0軟件將ODBC數(shù)據(jù)源中的數(shù)據(jù)庫對應(yīng)于運行數(shù)據(jù)庫中的各種變量,不需要更多的數(shù)據(jù)庫語言,就可以通過腳本操縱運行數(shù)據(jù)庫,完成對Access數(shù)據(jù)庫記錄的讀取、修改。操作極其簡便,只需幾分鐘便可完成連接組態(tài),利用數(shù)據(jù)庫并配合DATA、MSFlexGrid控件,實現(xiàn)強大報表功能(圖3);
3、報表制作由三步完成。
與數(shù)據(jù)庫連接(進行報表數(shù)據(jù)庫和運行數(shù)據(jù)庫的對應(yīng))
進行報表格式設(shè)計
報表內(nèi)容查詢、打?。ㄊ褂卯嬅嬷械膱蟊砜丶?/p>
用戶數(shù)據(jù)庫查詢按鈕-方便用戶查詢ODBC數(shù)據(jù)源中數(shù)據(jù),報表制作程序,制作各種樣式的報表格式;利用系統(tǒng)內(nèi)置的報表組件打印各種類型的報表(班報表、日報表、周報表、月報表、季度報表、年度報表、自由報表),同時還支持預覽和條件過濾輸出.
4、數(shù)據(jù)管理功能。
為方便用戶進行數(shù)據(jù)處理,VB提供了強大的數(shù)據(jù)管理功能。L2系統(tǒng)根據(jù)高爐生產(chǎn)參數(shù)的短期、中期、以及長期的參數(shù)平均值的變化制定了指導高爐操作的多個系列專家推理機規(guī)則。
四、系統(tǒng)運行后效果
山西美錦實現(xiàn)全廠統(tǒng)一管理和調(diào)度,很快成為管理人員的得力助手,會收到良好效果,主要表現(xiàn)在以下幾個方面:
1、提高生產(chǎn)管理效率。管理人員在辦公室就可以通過IE瀏覽器了解全廠各個工藝數(shù)據(jù)的實時變化,為生產(chǎn)決策提供第一手資料,生產(chǎn)節(jié)奏會明顯加快。
2、提高生產(chǎn)調(diào)度的快速性和準確性。為生產(chǎn)調(diào)度人員以最直接的方式提供生產(chǎn)實時數(shù)據(jù),彌補了以往打電話速度慢、失誤多的缺點。
3、實現(xiàn)數(shù)據(jù)整合和共享。數(shù)據(jù)從各個子系統(tǒng)直接采集進入系統(tǒng),實現(xiàn)煉鐵平臺的數(shù)據(jù)共享和整合,為數(shù)據(jù)的上行進行整合,并留有端口。
4、 確保生產(chǎn)穩(wěn)定性。有效避免很多安全事故,減少非計劃性休風次數(shù),很大程度上保證生產(chǎn)的穩(wěn)定性、安全性并延長生產(chǎn)周期。
5、 生產(chǎn)工藝水平提高。利用該系統(tǒng)為輔助工具,對原有設(shè)備管理及工藝進行差異性分析,及時進行改進。反過來利用管理系統(tǒng)中的需求對系統(tǒng)進行不斷升級,從而形成企業(yè)管理和監(jiān)控系統(tǒng)之間相互促進的良性循環(huán)。
五、結(jié)束語
煉鐵生產(chǎn)數(shù)據(jù)庫系統(tǒng)的成功應(yīng)用,使煉鐵平臺生產(chǎn)數(shù)據(jù)得以共享,將辦公室和工業(yè)現(xiàn)場連接起來,填補了管理調(diào)度層與過程控制系統(tǒng)之間的空白,實現(xiàn)了整個生產(chǎn)平臺的實時監(jiān)控、數(shù)據(jù)存儲、處理、異常分析、遠程管理調(diào)度,提高了煉鐵勞動生產(chǎn)效率和管理及操作水平、減少煉鐵生產(chǎn)事故,在節(jié)焦增鐵和降低成本上具有顯著的經(jīng)濟效益和社會效益。
參考文獻
一、自主訪問控制模型
自主訪問控制模型是基于用戶身份的訪問和控制。在自主型訪問安全模型中,每個用戶都要被分配一定的權(quán)限,例如用戶或者是被允許讀取,或是被允許寫入。也就是說,在自主型訪問安全模型中,對資源對象的“擁有”是用戶最核心的權(quán)限屬性。當某個用戶要求訪問某個數(shù)據(jù)庫資源時,系統(tǒng)檢查該用戶對該資源的所有權(quán)限,或衍生出來的訪問權(quán)限,如果通過,則允許該訪問在許可的方式下進行,如果不能通過,則拒絕繼續(xù)訪問系統(tǒng)。在自主型安全模型中,擁有某種權(quán)限的用戶可以自主地將其所擁有的權(quán)限傳授給其他任意在系統(tǒng)中登錄的用戶,它是該模型存在的致命缺點。自主訪問安全模型的典型代表是存取矩陣。DAC模型可對用戶提供靈活和易行的數(shù)據(jù)訪問方式,但安全性相對較低。在該模型中,盡管訪問控制只在授權(quán)后才能得到,但攻擊者也很容易越過訪問的授權(quán)限制。如當一個用戶有權(quán)對某數(shù)據(jù)進行讀操作時,它可以把這個權(quán)利傳遞給無權(quán)讀此數(shù)據(jù)的人,而數(shù)據(jù)的所有者并不知道這一切。一旦某個信息為用戶所獲得,那么該模型策略對信息的使用是不加任何限制的。也就是說,在該模型中,盡管有自主型控制,對于非授權(quán)的人來說,非法讀取數(shù)據(jù)是可能的,這樣一來,系統(tǒng)就很容易受到類似特洛伊木馬的攻擊。特洛伊木馬可以改變系統(tǒng)的保護狀態(tài),使系統(tǒng)安全受到威脅。
二、改造數(shù)據(jù)庫實現(xiàn)數(shù)據(jù)庫安全
(一)采用對數(shù)據(jù)庫驅(qū)動程序進行安全擴展的方法
在數(shù)據(jù)庫存取接口上,通過擴展標準的SQL語句,透明地實現(xiàn)對數(shù)據(jù)庫中敏感信息的加密和完整性保護,對關(guān)系數(shù)據(jù)庫的操作可以采用SQLDDL和SQLDML語言,通過ODBC、.IDBC、BDE等數(shù)據(jù)庫驅(qū)動程序?qū)崿F(xiàn)對數(shù)據(jù)庫中表格、記錄或字段的存取控制;并對用戶操作進行日志記錄和審計,從內(nèi)部增強關(guān)系數(shù)據(jù)庫的存儲和存取安全。這種方式具有通用性,并且不會對數(shù)據(jù)庫系統(tǒng)的性能造成大的影響。該模型在常規(guī)數(shù)據(jù)庫驅(qū)動程序中增加密鑰管理、審計日志管理、完整性驗證和數(shù)據(jù)加解密等安全擴展模塊,通過附加的安全屬性如數(shù)據(jù)庫存儲加密密鑰和審計日志等與安全相關(guān)的信息來加強數(shù)據(jù)庫的安全;同時,增加數(shù)據(jù)庫主密鑰設(shè)置、更新和加密算法設(shè)置等安全屬性來提高SQL語句的安全性。
(二)采用基于視圖的數(shù)據(jù)庫安全模型
SQLServer通用安全模型的特點是將權(quán)限賦予表,用戶要查詢數(shù)據(jù)、更改數(shù)據(jù)或?qū)?shù)據(jù)庫進行其它操作時,直接存取表,用戶只要有對表的Select權(quán)限,就可以檢索表中所有的信息。但是,現(xiàn)實世界中大多數(shù)的應(yīng)用都要求對信息本身劃分為不同的保密級別,如軍隊中對信息的分類就不能簡單地劃分為公開和保密2類,而是需要更加細致的分類,可能對同一記錄內(nèi)的不同字段都要劃分為不同的保密級別。甚至同一字段的不同值之間都要求劃分為不同的保密級別。多級保密系統(tǒng)中,對不同數(shù)據(jù)項賦予不同的保密級別。然后根據(jù)數(shù)據(jù)項的密級,給存取本數(shù)據(jù)項的操作賦予不同的級別。SQLServer通用安全模式顯然不能將不同的字段和同一字段的不同值分為不同的保密級別。這是因為用戶直接存取存儲數(shù)據(jù)的數(shù)據(jù)庫表。采用基于視圖的數(shù)據(jù)庫安全模型。這個問題就可迎刃而解。
利用視圖限制對表的存取和操作:通過限制表中的某些列來保護數(shù)據(jù);限制表中的某些行來保護數(shù)據(jù)。視圖和權(quán)限創(chuàng)建一個視圖后,必須給視圖授予對象權(quán)限,用戶才能存取和操作視圖中的數(shù)據(jù),不必給作為視圖表的基礎(chǔ)表授予權(quán)限。