1. 程式人生 > 資料庫 >4.0《資料庫系統概論》資料庫安全性詳解---(存取控制、DAC&MAC、檢視機制、審計Audit....)

4.0《資料庫系統概論》資料庫安全性詳解---(存取控制、DAC&MAC、檢視機制、審計Audit....)

文章目錄

0:參考文章連結

1:資料庫安全性概述

(1)為什麼要研究資料庫的安全性?

  • 問題提出
    • 共享—>安全性問題
    • 不能無條件共享—>例如:軍事祕密、國家機密、新產品實驗資料、
      市場需求分析、市場營銷策略、銷售計劃、
      客戶檔案、醫療檔案、銀行儲蓄資料
  • 資料庫的不安全因素:
    • 非授權使用者對資料庫的惡意存取和破壞
    • 資料庫中重要或敏感的資料被洩露
    • 安全環境的脆弱性

(2)安全標準簡介

  • TCSEC/TDI標準劃分指標:安全策略、責任、保證、文件
  • TCSEC/TDI安全級別劃分: D < C1 < C2 < B1 < B2 < B3 < A1
    (按系統可信或可靠程度逐漸增高)
    • B1(標記安全保護):該級別產品才被認為是真正意義上的安全產品

2:資料庫安全性控制概述

(1)計算機系統的安全模型

在這裡插入圖片描述

(2)資料庫管理系統安全性控制模型

在這裡插入圖片描述

3:資料庫安全性控制的常用方法:

(1)使用者標識與鑑別

  • 最外層安全保護措施
  • 使用者標識:使用者名稱(user name)和使用者標識號(UID)兩部分組成。
    • UID在系統的整個生命週期內是唯–的。
    • 系統內部記錄著所有合法使用者的標識
  • 口令:可理解為密碼
  • 使用者標識和口令易被竊取

常用的使用者身份鑑別方法:

  • ① 靜態口令鑑別
  • ② 動態口令鑑別:
  • ③ 生物特徵鑑別:
  • ④ 智慧卡鑑別:

(2)存取控制

  • 只授權給有資格的使用者訪問資料庫的許可權,同時令所有未被授權的人員無法接近資料,這主要通過資料庫系統的存取控制機制實現。

存取控制機制組成:

  • 定義使用者許可權:並將使用者許可權登記到資料字典中;
  • 合法許可權檢查:資料庫管理系統查詢資料字典,根據安全規則進行合法許可權檢查

定義使用者許可權和合法許可權檢查機制一起組成了資料庫管理系統的存取控制子系統

  • C2級的資料庫管理系統支援自主存取控制( Discretionary Access Control, DAC),
    -== B1級的資料庫管理系統支援強制存取控制==( Mandatory Access Control, MAC)。

  • 這兩類方法的簡單定義是:

    • (1)在自主存取控制方法中,使用者對於不同的資料庫物件有不同的存取許可權,不同的使用者對同一物件也有不同的許可權,而且使用者還可將其擁有的存取許可權轉授給其他使用者。因此自主存取控制非常靈活。
    • (2)在強制存取控制方法中,每一個 資料庫物件被標以一定的密級,每一個使用者也被授予某一個級別的許可證。對於任意一個物件, 只有具有合法許可證的使用者才可以存取。強制存取控制因此相對比較嚴格。

①自主存取控制方法—DAC

  • 通過 SQL 的 GRANT語句和 REVOKE語句實現
  • 使用者許可權組成
    • 資料物件
    • 操作型別
  • 定義使用者存取許可權:定義使用者可以在哪些資料庫物件上進行哪些型別的操作
  • 定義存取許可權稱為授權
  • 關係資料庫系統中的存取許可權

在這裡插入圖片描述

① 授權與回收—針對使用者
  • 1️⃣ 授權—GRANT

  • 2️⃣ 回收—REVOKE
    授予的許可權可以由DBA或其他授權者用REVOKE語句收回

注意:將使用者U5的INSERT許可權收回的時候必須級聯(CASCADE)收回,級聯(CASCADE)收回了U6和U7的INSERT許可權,否則系統拒絕執行該命令。

  • 3️⃣ 小結:SQL靈活的授權機制
    • DBA:
      擁有所有物件的所有許可權
      不同的許可權授予不同的使用者
    • 使用者:擁有自己建立的物件的全部的操作許可權
      GRANT:授予其他使用者
    • 被授權的使用者
      “繼續授權”(WITH GRANT OPTION)許可:可以再授予給其它使用者
    • 所有授予出去的權力在必要時又都可用REVOKE語句收回
  • 4️⃣ 建立資料庫模式的許可權
    • 三種許可權:connect、resource和DBA
      在這裡插入圖片描述
②資料庫角色—針對角色

資料庫角色:被命名的一組與資料庫操作相關的許可權

  • 角色是許可權的集合 ,結合我截得黑色背景圖片瞭解
  • 可以為一組具有相同許可權的使用者建立一個角色
  • 簡化授權的過程
    在這裡插入圖片描述

1️⃣ 角色的建立

2️⃣ 給角色授權

3️⃣ 將一個角色授予其他的角色或使用者

4️⃣ 角色許可權的收回

②強制存取控制方法—MAC

自主存取控制缺點:

  • 可能存在資料的“無意洩露”

強制存取控制(MAC):

  • 保證更高程度的安全性,適用於軍事部門、政府部門

在強制存取控制中,資料庫管理系統所管理的全部實體被分為主體和客體兩大類。

  • 主體是系統中的活動實體
    DBMS所管理的實際使用者
    代表使用者的各程序

  • 客體是系統中的被動實體,是受主體操縱的
    檔案
    基表
    索引
    檢視

對於主體和客體,資料庫管理系統為它們每個例項(值)指派一個敏感度標記(label)。

  • 敏感度標記(Label)分為若干個級別:
    絕密(Top Secret)
    機密(Secret)
    可信(Confidential)
    公開(Public)
  • 主體的敏感度標記稱為許可證級別(Clearance Level)
  • 客體的敏感度標記稱為密級(Classification Level)
  • 密級:T>=S>=C>=P

強制存取控制規則:

  • (1)僅當主體的許可證級別大於或等於客體的密級時,該主體才能讀取相應的客體
  • (2)僅當主體的許可證級別等於客體的密級時,該主體才能寫相應的客體
  • 修正規則
    主體的許可證級別 <=客體的密級→ 主體能寫客體

規則的共同點:

  • 禁止了擁有高許可證級別的主體更新低密級的資料物件

注意:

  • 強制存取控制是對資料本身進行密級標記,無論資料如何複製,標記與資料是一個不可分的整體,只有符合密級標記要求的使用者才可以操縱資料,從而提供了更高級別的安全性。

(3)DAC與MAC共同構成DBMS的安全機制

實現強制存取控制時要首先實現自主存取控制

  • 原因:較高安全性級別提供的安全保護要包含較低級別的所有保護
  • 先進行DAC檢查,通過DAC檢查的資料物件再由系統進行MAC檢查,只有通過MAC檢查的資料物件方可存取。
    在這裡插入圖片描述

4:檢視機制

把要保密的資料對無權存取這些資料的使用者隱藏起來,對資料提供一定程度的安全保護

  • [例14]建立計算機系學生的檢視,把對該檢視的SELECT許可權授於王平,把該檢視上的所有操作許可權授於張明
先建立計算機系學生的檢視CS_Student
 CREATE VIEW CS_Student AS 
    SELECT  *
    FROM   Student
    WHERE  Sdept='CS';
  • 在檢視上進一步定義存取許可權:
 GRANT  SELECT
 ON  CS_Student  
 TO 王平 ;
     
 GRANT ALL PRIVILIGES
 ON  CS_Student  
 TO  張明; 

5:審計(Audit) —日誌

什麼是審計:

  • 審計日誌(Audit Log);
    將使用者對資料庫的所有操作記錄在上面
  • DBA利用審計日誌
    找出非法存取資料的人、時間和內容
    C2以上安全級別的DBMS必須具有

審計分為:

  • 使用者級審計
  • 系統級審計
AUDIT語句:設定審計功能
NOAUDIT語句:取消審計功能

6:資料加密

  • 資料加密
    防止資料庫中資料在儲存傳輸中失密的有效手段
  • 資料加密分為儲存加密傳輸加密

7:統計資料庫安全性

資料庫安全機制的設計目標:
試圖破壞安全的人所花費的代價 >> 得到的利益