資料庫完整性和安全
Ⅰ 資料庫的安全策略有哪些
計算機安全是當前信息社會非常關注的問題,而資料庫系統更是擔負著存儲和管理數據信息的任務,因而如何保證和加強其安全性,更是迫切需要解決的熱門課題。下面將討論資料庫的安全策略,並簡單介紹各種策略的實現方案。x0dx0a一、資料庫的安全策略x0dx0a資料庫安全策略是涉及信息安全的高級指導方針,這些策略根據用戶需要、安裝環境、建立規則和法律等方面的限制來制定。x0dx0a資料庫系統的基本安全性策略主要是一些基本性安全的問題,如訪問控制、偽裝數據的排除、用戶的認證、可靠性,這些問題是整個安全性問題的基本問題。資料庫的安全策略主要包含以下幾個方面:x0dx0a1.保證資料庫存在安全x0dx0a資料庫是建立在主機硬體、操作系統和網路上的系統,因此要保證資料庫安全,首先應該確保資料庫存在安全。預防因主機掉電或其他原因引起死機、操作系統內存泄漏和網路遭受攻擊等不安全因素是保證資料庫安全不受威脅的基礎。x0dx0a2.保證資料庫使用安全x0dx0a資料庫使用安全是指資料庫的完整性、保密性和可用性。其中,完整性既適用於資料庫的個別元素也適用於整個資料庫,所以在資料庫管理系統的設計中完整性是主要的關心對象。保密性由於攻擊的存在而變成資料庫的一大問題,用戶可以間接訪問敏感資料庫。最後,因為共享訪問的需要是開發資料庫的基礎,所以可用性是重要的,但是可用性與保密性是相互沖突的。x0dx0a二、資料庫的安全實現x0dx0a1.資料庫存在安全的實現x0dx0a正確理解系統的硬體配置、操作系統和網路配置及功能對於資料庫存在安全十分重要。比如對於硬體配置情況,就必須熟悉系統的可用硬碟數量,每個硬碟的可用空間數量,可用的CPU數量,每個CPU的Cache有多大,可用的內存數量,以及是否有冗餘電源等問題;對於操作系統,則應該周期性的檢查內存是否有泄漏,根文件系統是否需要清理,重要的日誌是否已經察看;對於網路就應該隨時確保網路沒有過載,網路暢通、網路安全是否得到保證等等。因為這一部分不是本文的重點,所以不再一一細述,總之,這三方面的安全運行是和維護資料庫存在安全不可分割的。x0dx0a2.資料庫完整性的實現x0dx0a資料庫的完整性包括庫的完整性和元素的完整性。x0dx0a資料庫的完整性是DBMS(資料庫管理系統)、操作系統和系統管理者的責任。資料庫管理系統必須確保只有經批準的個人才能進行更新,還意味著數據須有訪問控制,另外資料庫系統還必須防範非人為的外力災難。從操作系統和計算系統管理者的觀點來看,資料庫和DBMS分別是文件和程序。因此整個資料庫的一種形式的保護是對系統中所有文件做周期性備份。資料庫的周期性備份可以控制由災禍造成的損失。資料庫元素的完整性是指它們的正確性和准確性。由於用戶在搜集數據、計算結果、輸入數值時可能會出現錯誤,所以DBMS必須幫助用戶在輸入時能發現錯誤,並在插入錯誤數據後能糾正它們。DBMS用三種方式維護資料庫中每個元素的完整性:通過欄位檢查在一個位置上的適當的值,防止輸入數據時可能出現的簡單錯誤;通過訪問控制來維護資料庫的完整性和一致性;通過維護資料庫的更改日誌,記錄資料庫每次改變的情況,包括原來的值和修改後的值,資料庫管理員可以根據日誌撤消任何錯誤的修改。x0dx0a3.資料庫保密性的實現x0dx0a資料庫的保密性可以通過用戶身份鑒定和訪問控制來實現。x0dx0aDBMS要求嚴格的用戶身份鑒定。一個DBMS可能要求用戶傳遞指定的通行字和時間日期檢查,這一認證是在操作系統完成的認證之外另加的。DBMS在操作系統之外作為一個應用程序被運行,這意味著它沒有到操作系統的可信賴路徑,因此必須懷疑它所收的任何數據,包括用戶認證。因此DBMS最好有自己的認證機制。x0dx0a訪問控制是指根據用戶訪問特權邏輯地控制訪問范圍和操作許可權。如一般用戶只能訪問一般數據、市場部可以得到銷售數據、以及人事部可以得到工資數據等。DBMS必須實施訪問控制政策,批准對所有指定的數據的訪問或者禁止訪問。DBMS批准一個用戶或者程序可能有權讀、改變、刪除或附加一個值,可能增加或刪除整個欄位或記錄,或者重新組織完全的資料庫。x0dx0a4.資料庫可用性的實現x0dx0a資料庫的可用性包括資料庫的可獲性、訪問的可接受性和用戶認證的時間性三個因素。下面解釋這三個因素。x0dx0a(1)數據的可獲性x0dx0a首先,要訪問的元素可能是不可訪問的。例如,一個用戶在更新幾個欄位,其他用戶對這些欄位的訪問便必須被暫時阻止。這樣可以保證用戶不會收到不準確的信息。當進行更新時,用戶可能不得不阻止對幾個欄位或幾個記錄的訪問通道,以便保證數據與其他部分的一致性。不過有一點要注意,如果正在更新的用戶在更新進行期間退出,其他用戶有可能會被永遠阻止訪問該記錄。這種後遺症也是一個安全性問題,會出現拒絕服務。x0dx0a(2)訪問的可接受性x0dx0a記錄的一個或多個值可能是敏感的而不能被用戶訪問。DBMS不應該將敏感數據泄露給未經批準的個人。但是判斷什麼是敏感的並不是那麼簡單,因為可能是間接請求該欄位。一個用戶也許請求某些包含敏感數據的記錄,這可能只是由非敏感的特殊欄位推出需要的值。即使沒有明確地給出敏感的值,資料庫管理程序也可能拒絕訪問這樣的背景信息,因為它會揭示用戶無權知道的信息。x0dx0a(3)用戶認證的時間性x0dx0a為了加強安全性,資料庫管理員可能允許用戶只在某些時間訪問資料庫,比如在工作時間。
Ⅱ 資料庫的完整性和安全性有什麼區別
資料庫的完整性和安全性是兩個不同的概念。
資料庫的完整性是指為了防止資料庫中存在不符合語義的數據,防止錯誤信息的輸入和輸出,即所謂垃圾進垃圾出(Garba:eInGarba:eout)所造成的無效操作和錯誤結果。
資料庫的安全性是保護資料庫防止惡意的破壞和非法的存取。
總結來說,資料庫安全性措施的防範對象是非法用戶和非法操作,資料庫的完整性措施的防範對象是不合語義的數據。
Ⅲ 簡述資料庫的安全性和完整性有什麼區別
資料庫的完整性的全名,關系資料庫的參照完整性(Referential
Integrity),一般是用在表示多個表之間關系時用的,而且經常使用。
資料庫的安全性是指保護資料庫以防止不合法的使用所造成的數據泄露、更改或破壞。
數據的完整性和安全性是資料庫保護的兩個不同方面。安全性是防止用戶非法使用資料庫。完整性則是防止合法用戶使用資料庫時向資料庫中加入不合語義的數據。
數據的安全性是指資料庫是否容易攻破。
數據的完整性是指兩個表之間的完整連接。
Ⅳ 問題:什麼是資料庫的完整性
答:資料庫的完整性是指數據的正確性和相容性。 問題:資料庫的完整性概念與資料庫的安全性概念有什麼區別和聯系?答: 資料庫的完整性是指數據的正確性和相容性、資料庫的安全性是指保護資料庫.以防止不合法的使用造成的數據泄密、更改或破壞。其相同點是兩者都是對資料庫中的數據進行控制.各自所實現的功能目標不同。問題:什麼是資料庫的完整性約束條件?可分為哪幾類?答: 數據完整性約束是為了保證進入資料庫中的數據的有效性而定義的數據規則、它可以分為以下兩類. ①針對不同的對象可以分為表級約束、元塑級約束和屬性級約束(也稱列約束);表級約束是若干元組間、關系中及關系之間的約束:元組級約束則是元組中的欄位組和欄位間聯系的約束;屬性級約束主要是針對列的類型、取值范圍、精度、排序等而制定的約束條件。②針對數據對象的狀態可以分為靜態約束和動態約束:靜態約束是指資料庫每一確定狀態時的數據對象所應滿足的約束條件.它是反映資料庫狀態穩定時的約束.動態約束是指資料庫從一種狀態轉變為另一種狀態時.新、舊值之間所應滿足的約束條件.它是反映資料庫狀態變遷的約束。 問題: DBMS的完整性控制應具有哪些功能? 答;①定義和存儲完整性功能.②檢查完整性功能;③控制完整性功能。 問題:RDBMS在實現參照完整性時需要考慮哪些方面?答: ①外碼能夠接受空值的問題. ②在被參照關系中刪除元組時.採用級聯刪除、受限刪除或置生值刪除的方法處理參照關系; ③在參照關系中插入元組時.可以使用受限插入、遞歸插入兩種方法處理參照關系. ④修改關系的主碼時 可以採用不允許修改主碼、或允許修改關系主碼.但必須保證主碼的惟一性和非空性方法處理參照關系; ⑤修改被參照關系時,可以採用級聯修改、拒絕修改和置空值修改方法處理參照關系。問題:假設有下面兩個關系模式: 職工(職工號,姓名,年齡,職務,工資,部門號),其中職工號為主碼; 部門(部門號,名稱,經理名,電話),其中部門號為主碼.用SQL語言定義這兩個關系模式.要求在模式中完成以下完整性約束條件的定義: 1)定義每個模式的主碼。 2)定義參照完整性。3)定義職工年齡不得超過60歲。 答: CREATE TABLE職工(職工號 CHAR(5)PRIMARY KEY, 姓名CHAR(8)NOT NULL, 年齡SMALLINT. 職務CHAR(10), 工資DECIMAL(7,2), 部門號CHAR(5)。 CONSTRAINT CI CHECK(年齡 <60). CONSTRAIN C2 FOREIGN KEY(部門號) REFEENCES部門(部門號)); CREAT TABLE部門(部門號CHAR(5)PRIMARY KEY. 名稱CHAR(l). 經理名 CHAR(8). 電話 CHAR(8). CONSTRAINT C3 FOREIGN KEY(經理名) REFERECES職工(姓名));問題:在資料庫中為什麼要並發控制?答; 資料庫的井發控制就是為了控制資料庫,防止多用戶並發使用資料庫時造成數據錯誤和程序運行錯誤,保證數據的完整性。問題:並發操作可能會產生哪幾類數據不一致?用什麼方法能避免這些不一致的情況?答. 井發操作可能會產生丟失修改、不可重復讀和讀「臟」數據的數據不一致問題。用封鎖的方法能避免這些不一致的情況。問題:什麼是封鎖?答. 封鎖是使事務對它要操作的數據有一定的控制能力。封鎖具有三個環節.第一個環節是申請加鎖.第二個環節是獲得鎖;第三個環節是釋放鎖。問題:基本的封鎖類型有幾種?試述它們的含義。 答. 基本的封鎖類型有兩種:排它鎖(簡稱X鎖)和共享鎖(簡稱S鎖)。 排它鎖也稱為獨占或寫鎖、一旦事務T對數據對象A加上排它鎖.則只允許T讀取和修改A.其他任何事務既不能讀取和修改A,也不能再對A加任何類型的鎖 直到T釋放A上的鎖為止。 共享鎖又稱讀鎖、如果事務T對數據對象A加上共享鎖,其他事務只能再對A加S鎖,不能加X鎖,知道事務T釋放A上的S鎖為止。問題:如何用封鎖機制保證數據的一致性?答: 封鎖機製作為井發控制的重要手段.利用封鎖的特性和封鎖協議,它在井發操作保證事務的隔離性.用正確的方式調度並發操作.是一個用戶事務的執行不受其他事務的干擾.從而避免造成數據的不一致性。問題:什麼是封鎖協議?不同級別的封鎖協議的主要區別是什麼? 答. 在對數據對象加鎖時,還需要約定一些規則 這些規則稱為封鎖協議。 一級封鎖協議:是事務T在修改數據之前必須先對其加X鎖.直到事務結束才釋放。一級封鎖協議可有效地防止丟失修改並能夠保證事務T的可恢復性、一級封鎖由於沒有對數據進行加鎖,所以不能保證可重復讀和不讀「贓」數據。 二級封鎖協議;是事務T對要修改的數據必須先加X鎖.直到事務結束才釋放X鎖;要讀取的數據必須先加S鎖.讀完後即可釋放S鎖。M級封鎖協議不但能夠防止丟失修改,還可進一步防止讀「臟」數據。 三級封鎖協議:是事務T在讀取數據之前必須先對其加S鎖.在要修改數據之前必須先對其加X鎖.直到事務結束後才釋放所有鎖、由於三級封鎖協議強調即使事務讀完數據A之後也不釋放S鎖 從而使得別的事務無法更改數據A、三級封鎖協議不但防止了丟失修改和不讀「臟」數據,而且防止了不可重復的隊問題:不同封鎖協議與系統一致性級別的關系是什麼?答: 一級封鎖協議可有效地防止丟失修改,並能夠保證事務T的可恢復性。一級封鎖由於沒有對數據進行加鎖,所以不能保證可重復讀和不讀「臟』數據。 二級封鎖協議不但能夠防止丟失修改.還可進一步防u讀「臟」數據。 由於三級封鎖協議強調即使事務讀完數據A之後也不釋放S鎖,從而使別的事務無法更改數據A。三級封鎖協議不但防止了丟失修改和不讀「勝數據.而且防u了不可重復讀。問題:什麼是活鎖?什麼是死鎖?答; 在多個事務請求對同一數據封鎖時,總是使某一用戶等待的情況稱為活鎖;多事務交錯等待的僵持局面稱為死鎖。問題:試述活鎖的產生原因和解決方法。答; 活鎖是封鎖的無序造成的、解決方法是採用先來先服務的方法,即對要求封鎖數據的事務排隊.使前面的事務先獲得數據的封鎖權。問題:請給出預防死鎖的若干方法。 答: 預防死鎖通常有以下兩種方法; ①一次封鎖法.就是要求每個事務必須一次將所有要使用的數據全部加鎖.否則該事務不能繼續執行. ②順序封鎖法.是預先對數據對象規定一個封鎖順序.所有事務都按這個順序實行封鎖。問題:請給出檢測死鎖發生的一種方法,當發生死鎖後如何解除死鎖?答: 檢測死鎖發生的一種方法是選擇一個處理死鎖代價最小的事務,將其撤銷,釋放此事務持有的所有鎖.使其他事務得以繼續運行下去。 解除死鎖問題有兩類方法:一類方法是採用一定措施來預防死鎖的發生.另一類方法是允許發生死鎖.然後採用一定手段定期診斷系統中有無死鎖.若有則解除之。問題:什麼樣的並發調度是正確的調度?答. 如果一個事務運行過程中沒有其他事務同時運行,即沒有受到其他事務的干擾,那麼就可以認為該事務的運行結果是正常的,可串列性是井發事務正確性的准則 為了保證並發操作的正確性.DBMS的並發控制機制必須提供一定的手段來保證調度是可串列化的。問題:試述兩段鎖協議的概念。 答: 所謂兩段鎖協議是指所有事務必須分兩個階段對數據項進行加鎖和解鎖. ①在對任何數據進行讀、寫操作之前.首先要申請並獲得對該數據的封鎖. ②在釋放一個封鎖之後,事務不再申請並獲得對該數據的封鎖。 即每個事務分成兩個階段,第一階段是申請和獲得封鎖,也稱為擴展階段。在這階段.事務可以申請獲得任何數據項上的任何類型的鎖,但是不能釋放任何鎖。第二階段是釋放到鎖.也稱為收縮階段。在這階段,事務可以釋放任何數據項上的任何類型的鎖。但是不能再申請任何鎖。問題:為什麼要引進意向鎖?意向鎖的含義是什麼?答: 事務 T要對關系 RI加 X鎖時,系統只需檢查根結點資料庫和關系 RI是否已加了不相容的鎖.而不再需要搜索和檢查RI中的每一個元組是否加了X鎖.對任一元組加鎖.必須先對它所在的關系加意向鎖。 意向鎖的含義是.如果對一個結點加意向鎖。則說明該給點的下層結點正在被加銷:對任何一結加鎖時.必須先對它的上層結點加意向鎖。問題:理解並解釋下列術語的含義:封鎖、活鎖、死鎖、排它鎖、共享鎖、並發事務的調度、可串列化的調度、兩段鎖協議。答: ①封鎖.封鎖是使事務對它要操作的數據有一定的控制能力。 ③活鎖:這種在多個事務請求對同一數據封鎖時.總是使某一用戶等待的情況稱為活鎖。 ③死鎖.這種多事務交錯等待的僵持局面稱為死鎖。 ④排它鎖.排名鎖也稱為獨占或寫鎖、一旦事務T對數據對象A加上排它鎖,則只允許T讀取和修改A.其他任何事務既不能讀取和修改A.也不能再對A加任何類型的鎖.直到T釋放A上的鎖為止。 ⑤共享鎖:共享鎖又稱讀鎖、如果事務T對數據對象A加上共享鎖.其他事務只能再對A加S鎖.不能加X鎖.知道事務T釋放A上的S鎖為上。 ③井發事務的調度.多個事務並發執行調度策略稱為並發事務的調度。 ①可串列化的調度:如果多個事務並發執行的結果與按串列執行的結果相同 這種調度策略稱為可串列化的調度。③兩段鎖協議.所謂兩段鎖協議是指所有事務必須分兩個階段對數據項進行加鎖和解鎖。 問題:什麼是資料庫的安全性?答.資料庫的安全性是指保護資料庫.以防止不合法的使用數據泄密、更改或破壞。 問題:資料庫安全性和計算機系統的安全性有什麼關系? 答: 資料庫安全性是計算機系統的安全性的一個部分.資料庫系統不僅要利用計算機系統的安全性保證自己系統的安全性.同時還會提供專門的手段和方法,使安全性能更好。例如在用戶要求進入計算機系統時.系統首先根據用戶輸入的用戶標識進行身份鑒定,只有合法的用戶才准許進入計算機系統:對已進入的用戶 ***S還要進行存取控制,只允許用戶執行合法操作:操作系統也會提供相應的保護措施;數據最後還可以以密碼形式存儲到資料庫中。 問題:試述實現資料庫安全性控制的常用方法和技術。答. ①用戶標識與鑒別:②存取控制:③自主存取控制方法.④強制存取控制方法:⑤視圖機制;③審計.o數據加密。 問題:SQL 語言中提供了哪些數據控制(自主存取控制)的語句?請試舉幾例說明它們的使用方法。答. ①GRANT(授權)語句 例:GRANT SELECTINSRRT ON學生 TO張勇 WITH GRANT OPTION; ②REVOKE(收回)語句 例:REVOKE INSERT ON學生 FROM張勇; 問題:今有兩個關系模式: 職工(職工號,姓名,年齡,職務,工資,部門號); 部門(部門號,名稱,經理名,地址,電話)。 請田SQL 的GRANT和REVOKE語句(加上視圖機制),完成以下授權定義或存取控制功能。 1)用戶王明對兩個表有SELECT權力。 2)用戶李勇對兩個表有INSERT和DELETE權力。 3)用戶劉星對職工表有SELECT權利,對工資欄位具有更新權力。 4)用戶張新具有修改這兩個表的結構的權力。 5)用戶周平具有對兩個表的所有權力(讀、插、改、刪數據),並具有給其他用戶授權的權利。
Ⅳ 簡述資料庫的安全性和完整性有什麼區別
資料庫的完整性的全名,關系資料庫的參照完整性(ReferentialIntegrity),一般是用在表基春示多個表之間關系時用的,而且經常使用。
資料庫的安歷鋒胡全性是指保護資料庫以防止不合法的使用所造成的數據泄露、更改或破壞。
數據的完整性和安全性是資料庫保護的兩個不同方面。安全性是防止用戶非法使用資料庫。完肢攔整性則是防止合法用戶使用資料庫時向資料庫中加入不合語義的數據。
數據的安全性是指資料庫是否容易攻破。
數據的完整性是指兩個表之間的完整連接。
Ⅵ 資料庫安全性和資料庫完整性的區別是什麼
一、不同點
1、內容不同
資料庫完整性是指數據的正確性和相容性。
資料庫安全性是指保護資料庫,以防止不合法的使用造成的數據泄密、更改或破壞。
2、對象不同
資料庫安全性的防範對象是非法的操作和未授權的用戶。
資料庫完整性的防範對象是不旁野符合語義的數據。
二、相同點是兩者都是對資料庫中的數據進行控制,各自所實現的功能目標不同。
(6)資料庫完整性和安全擴展閱讀
資料庫系統安全主粗模要利用在系統級控制資料庫的存取和使用的機制,包含:
(1) 系統的安全設置及管理,包括法律法規、政策制度、實體安全等;
(2) 資料庫的訪問控制和許可權管理;
(3) 用戶的資源限制,包括訪問、使用、存取、維護與管理等;
(4) 系運凳喊統運行安全及用戶可執行的系統操作;
(5) 資料庫審計有效性;
(6) 用戶對象可用的磁碟空間及數量。
Ⅶ 資料庫的安全性與完整性有什麼區別
資料庫的完整性和安全性是兩個不同的概念。
1.
資料庫的完整性是指為了防止資料庫中存在不符合語義的數據,防止錯誤信息的輸入和輸出,即所謂垃圾進垃圾出(garba:eingarba:eout)所造成的無效操作和錯誤結果。
2.
資料庫的安全性是保護資料庫防止惡意的破壞和非法的存取。
3.
總結來說,資料庫安全性措施的防範對象是非法用戶和非法操作,資料庫的完整性措施的防範對象是不合語義的數據。