跳轉到內容

主記憶體資料庫系統設計/資料庫管理

來自華夏公益教科書,開放書籍,開放世界

目錄上一篇: 儲存引擎概述下一篇: 分配器


第五章 資料庫管理

資料庫是包含和操作資料的物件的集合。每個資料庫管理系統對支援的資料庫總數都有限制。大多數資料庫每個例項最多支援 10K 個數據庫。由於虛擬地址空間限制,MMDB 可能無法每個例項支援 100 個數據庫。假設資料庫大小設定為 100MB,那麼例項最多支援 4 GB/ 100 MB= 40 個數據庫。

資料庫是許多關係物件的集合,例如表、檢視和約束。使用者擁有資料庫;所有者應向其他使用者授予特殊訪問許可權。

資料庫管理功能

[編輯 | 編輯原始碼]
  • 建立和刪除資料庫
  • 授予/撤銷使用者訪問許可權
  • 根據資料庫大小增加/縮減資料庫
  • 資料永續性
  • 系統崩潰時資料庫恢復
  • 存檔/還原

驗證野指標寫入技術

[編輯 | 編輯原始碼]

這是應用程式開發週期中 MMDB 的主要問題之一。MMDB 公開指向資料的實際指標,這可能會導致應用程式進行野指標寫入。這將損壞資料。MMDB 應提供一種機制來檢測此問題並在發生損壞時恢復資料庫。

資料庫 VS 架構

[編輯 | 編輯原始碼]

在 ANSI SQL-92 標準中,架構被定義為由單個使用者擁有的資料庫物件的集合,並形成一個單獨的名稱空間。名稱空間是一組不能有重複名稱的物件。例如,兩張表可以有相同的名稱,當且僅當它們都屬於兩個不同的架構。

架構 VS 使用者

[編輯 | 編輯原始碼]

架構和使用者之間存在著一種隱式關係。這種關係非常密切,以至於許多資料庫使用者對此並不瞭解。如果建立使用者,DBMS 將建立使用者和架構,並授予使用者對建立的架構的所有許可權。一些 DBMS 要求使用者在三個不同的步驟中執行上述操作。

預設資料庫、架構和使用者

[編輯 | 編輯原始碼]

每個 DBMS 至少有一個預設資料庫、架構和使用者,以及預設密碼。這樣做是為了確保 DBMS 在安裝後立即準備好。

資料庫安全

[編輯 | 編輯原始碼]

在多使用者資料庫管理系統中,DBMS 應提供技術,使某些使用者能夠訪問資料庫的選定部分,而無需訪問資料庫的其餘部分。當大型整合資料庫要由同一組織內的許多不同使用者使用時,這一點非常重要。例如,應將敏感資訊(例如薪資)對大多數其他資料庫系統使用者保密。DBMS 透過授權子系統來實現這一點,該子系統負責確保資料庫部分免受未經授權的訪問。

跨網路工作的資料庫的另一個安全問題應透過資料加密來解決。加密也可以用來為資料庫的敏感部分提供額外的保護。資料使用某種編碼演算法進行編碼。未經授權的使用者訪問編碼資料將難以解碼資料。授權使用者將獲得解密演算法,他們將使用這些演算法訪問資料。

資料庫管理員

[編輯 | 編輯原始碼]

資料庫管理員是管理資料庫系統的核心機構。DBA 的職責包括建立、刪除使用者、更改使用者密碼、授予使用者對資料庫物件的許可權以及根據組織的策略撤銷許可權。DBA 負責資料庫系統的整體安全。

訪問保護、使用者帳戶和資料庫

[編輯 | 編輯原始碼]

1. 每當個人或群體需要訪問資料庫系統時,個人或群體必須首先申請使用者帳戶。如果需要合法訪問資料庫,DBA 將為使用者建立一個新的帳戶號和密碼。2. 使用者在需要資料庫訪問許可權時,必須透過輸入帳戶號和密碼登入 DBMS。

3. The DBMS checks that the account number and password are valid; if they are, the user is permitted to use the DBMS and to access the database. Application programs can also be considered as users and can be required to supply passwords.

4. 透過建立一個包含兩個欄位帳戶號和密碼的加密表或檔案,可以很容易地跟蹤資料庫使用者及其帳戶和密碼。此表可以由 DBMS 輕鬆維護。每當建立新帳戶時,都會將新記錄插入表中。當帳戶被取消時,必須從表中刪除相應的記錄。5. 資料庫系統還必須跟蹤每個使用者在每個登入會話期間對資料庫應用的所有操作,其中包括使用者從登入到登出時執行的資料庫互動序列。當用戶登入時,DBMS 可以記錄使用者的帳戶號並將其與終端相關聯,所有對資料庫的操作都歸因於使用者的帳戶,直到使用者登出。特別重要的是要跟蹤應用於資料庫的更新操作,以便如果資料庫被篡改,DBA 可以找出哪個使用者進行了篡改。6. 為了記錄應用於資料庫的所有更新以及應用每個更新的特定使用者,我們可以修改系統日誌,其中包含對資料庫應用的每個操作的條目,這些條目可能需要從事務失敗或系統崩潰中恢復。我們可以擴充套件日誌條目,以便它們還包含應用每個記錄在日誌中的操作的使用者的帳戶號和線上終端 ID。如果懷疑對資料庫有任何篡改,則會執行資料庫審計,該審計包括審查日誌以檢查資料庫在特定時間段內應用的所有訪問和操作。當發現非法或未經授權的操作時,DBA 可以確定用於執行此操作的帳戶號。資料庫審計對於由許多事務和使用者更新的敏感資料庫尤其重要,例如由許多銀行出納員更新的銀行資料庫。主要用於安全目的的資料庫日誌有時稱為審計跟蹤。

資料庫審計

[編輯 | 編輯原始碼]

如果懷疑對資料庫有任何篡改,則會執行資料庫審計,該審計包括審查日誌以檢查資料庫在特定時間段內應用的所有訪問和操作。當發現非法或未經授權的操作時,DBA 可以確定用於執行此操作的帳戶號。資料庫審計對於由許多事務和使用者更新的敏感資料庫尤其重要,例如由許多銀行出納員更新的銀行資料庫。主要用於安全目的的資料庫日誌有時稱為審計跟蹤。

基於角色的訪問控制

[編輯 | 編輯原始碼]

資料庫型別

[編輯 | 編輯原始碼]

控制資料庫 - 一個

目錄資料庫 - 一個

使用者資料庫 - 多個

記憶體頁

[編輯 | 編輯原始碼]

通常為 8 KB。應與作業系統頁面大小相同。


目錄上一篇: 儲存引擎概述下一篇: 分配器

華夏公益教科書