數據庫系統概論——第四章 數據庫安全性

數據庫系統概論——第四章 數據庫安全性

在這裏插入圖片描述

數據庫安全性:保護數據庫以防止不合法使用所造成的數據泄露更改破壞

系統安全保護措施是否有效是數據庫系統主要的性能指標之一。

一、數據庫安全安全性概論
1. 數據庫的不安全因素
(1)非授權用戶對數據庫的惡意存取和破壞,dbms 提供的安全措施主要包括:用戶身份鑑別、存取控制和視圖等技術。
(2)數據庫中重要或敏感的數據被泄露,dbms系統主要技術有強制存取控制、數據加密存儲和加密傳輸等。
(3)安全環境的脆弱性:數據庫的安全性與計算機系統的安全性緊密聯繫,要建立一套可信計算機系統的概念和標準。

2. 安全標準簡介

在這裏插入圖片描述

在這裏插入圖片描述

二、數據庫安全性控制

計算機系統中,安全措施是一級一級層層設置

計算機系統的安全模型:

系統根據用戶表示鑑定用戶身份,合法用戶才准許進入計算機系統。
數據庫管理系統還要進行存取控制,只允許用戶執行合法操作。
操作系統有自己的保護措施。
數據以密碼形式存儲在數據庫中。

數據庫安全性控制的常用方法(重點)
(1)用戶標識和鑑定
(2)存取控制
(3)視圖
(4)審計
(5)數據加密

  1. 用戶身份鑑別(identitication & Authentication)
    系統提供的最外層的安全措施
    用戶識別:由用戶名和用戶標識號組成(用戶標識號在系統整個生命週期內唯一)
    用戶身份鑑別的方法
    (1)靜態口令鑑別:靜態口令一般由用戶自己設定,這些口令是靜態不變的
    (2)動態口令鑑別:口令是動態變化的,每次鑑別時均需使用動態產生的新口令登錄數據庫管理系統,即採用一次一密的方法。
    (3)生物特徵鑑別:通過生物特徵進行認證的技術,生物特徵如指紋、虹膜和掌紋等
    (4)智能卡鑑別:智能卡是一種不可複製的硬件,內置集成電路的芯片,具有硬件加密功能

  2. 存取控制
    (1)DBMS的存取子系統控制子系統組成
    ①定義用戶權限,並將用戶權限登記到數據字典中。
    (權限:用戶對某一數據對象的操作權利)
    ②合法權限檢查:用戶發出存取數據庫操作請求
    DBMS查找數據字典,進行合法權限檢查
    (2)常用的存取控制方法
    ①自主存取控制方式(DAC)
    C2級、用戶對不同的數據對象有不同的存取權限、不同的用戶對同一對象也有不同的權限、用戶還可將其擁有的存取權限轉授給其他用戶。
    通過sql的grant和revoke語句實現。
    用戶權限組成:操作對象,操作類型
    授權:定義存取權限

    1)授權grant


(1) 將對指定操作對象的指定操作權限授予指定的用戶。 grant的發出者:DBA,數據庫的創建者(owner),擁有該權限的用戶
(2)grant的接受者:一個或多個具體的用戶,public(即全體用戶) with grant
(3)option子句:指定:可以再授予,沒有指定:不可以再授予。
(4)不允許循環授權

eg:把查詢student表授權給用戶U1
//創造一個用戶

//授權

eg:把把對Student表和Course表的全部權限授予用戶U2和U3
grant all priviliges

eg:把對錶SC的查詢權限授予所有用戶
to public

eg:把查詢Student表和修改學生學號的權限授給用戶user1。

eg:把對錶SC的INSERT權限授予user1用戶,並允許他再將此權限授予其他用戶。

2)回收(revoke)

授予的權限可以由DBA或其他授予用戶用revoke語句收回
在這裏插入圖片描述

eg:把用戶user1修改學生學號的權限收回

在【例4.10】中U6與U7對SC表的INSERT的權限由U5授予
在這裏插入圖片描述
3)創建數據庫模式的權限

(1) DBA在創建用戶時實現。
(2) create user 語句格式:
create user 《username》
【with】【DBA|resource|connect】
(3) create user 不是sql標準,在各個系統中是不同的。


在這裏插入圖片描述

4)數據庫角色:被命名的一組與數據庫操作相關的權限。

角色是權限的集合
可以爲一組具有相同權限的用戶創建一個角色
簡化授權過程
創建角色:

給角色授權:

將一個角色授予其他角色或用戶:

一個角色的權限:直接授予這個角色的全部權限加上其他角色授予這個角色的全部權限
收回角色權限:

一、自主存取控制的缺點:
可能存在數據的“無意泄露”
原因:這種機制僅僅通過對數據的存取權限來進行安全控制,而數據本身並無安全性標記
解決:對系統控制下的所有主客體實施強制存取控制策略
二、強制存取控制(MAC):
保證更高程度的安全性
用戶不能直接感知或進行控制
適用於對數據有嚴格而固定密級分類的部門
 軍事部門
 政府部門

②強制存取控制方式(MAC)
B1級、每一個數據對象被標以一定的密級、每一個用戶也被授權某一個級別的許可證、對於任意一個對象,只有具有合法許可證的用戶纔可以存取。
在強存取控制空,DBMS所管理的全部試題被分爲主體和客體兩大類:
1)主體:系統中的活動實體,即實際用戶或代表用戶的各進程
2)客體:系統中的被動實體,受主體操縱,即文件、基本表、索引、視圖。
敏感度標記(Label)
對於主體和客體,DBMS爲它們每個實例(值)指派一個敏感度標記(Label)
敏感度標記分成若干級別
1)絕密(Top Secret,TS)
2)機密(Secret,S)
3)可信(Confidential,C)
4)公開(Public,P)
TS>=S>=C>=P
許可證級別:主體的敏感度標記
密級:客體的敏感度標記

強制存取控制規則:
1)僅當主體的許可證級別大於或等於客體的密級時,該主體才能取相應的客體
2)僅當主體的許可證級別小於或等於客體的密級時,該主體才能相應的客體

強制存取控制(MAC)是對數據本身進行密級標記,無論數據如何複製,標記與數據是一個不可分的整體,只有符合密級標記要求的用戶纔可以操縱數據。
實現強制存取控制時要首先實現自主存取控制
原因:較高安全性級別提供的安全保護要包含較低級別的所有保護
自主存取控制強制存取控制共同構成數據庫管理系統的安全機制

3)
3. 視圖機制
把要保密的數據對無權存取這些數據的用戶隱藏起來,對數據提供一定程度的安全保護
間接地實現支持存取謂詞的用戶權限定義。

  1. 審計(audit)
    什麼是審計?
    (1)啓用一個專用的審計日誌,將用戶對數據庫的所有操作記錄在上面
    (2)審計員利用審計日誌,監控數據庫中的各種行爲,找到非法存取數據的人、時間和內容。
    (3)C2以上的安全級別的DBMS必須具有審計功能。
    審計功能的可選性?
    (1)審計很費時間和空間
    (2)DBA可以根據應用對安全性的要求,靈活地打開或關閉審計功能
    (3)審計功能主要用於安全性要求較高的部門
    審計事件?
    (1)服務器事件:審計數據庫服務器發生的事件
    (2)系統權限:對系統擁有的結構或模式對象進行操作的審計,要求該操作的權限是通過系統權限獲得的
    (3)語句事件:對SQL語句,如DDL、DML、DQL及DCL語句的審計
    (4)模式對象事件:對特定模式對象上進行的SELECT或DML操作的審計
    審計功能?
    (1)基本功能:提供多種審計查閱方式提供多種審計查閱方式
    (2)多套審計規則:一般在初始化設定
    (3)提供審計分析和報表功能
    (4)審計日誌管理功能
    (5)提供查詢設計設置以及設計記錄信息的專門視圖

    審計類型?
    (1)用戶級審計:任何用戶可設置的審計,主要是用戶針對自己創建的數據庫表和視圖進行審計
    (2)系統級審計:只能由數據庫管理員設置,監測成功或失敗的登錄要求、監測授權和收回操作以及其他數據庫級權限下的操作
    在這裏插入圖片描述
    mysql8上使用審計:
    (1)查看審計配置情況


    (2)永久開啓審計

    (3)臨時開啓審計
    show variables like ‘general_log’; – 查看日誌是否開啓
    show variables like ‘log_output’; – 看看日誌輸出類型 table或file
    show variables like ‘general_log_file’; – 看看日誌文件保存位置
    set global general_log_file=‘tmp/general.lg’; – 設置日誌文件保存位置
    set global general_log=on; – 開啓日誌功能
    set global log_output=‘table’; – 設置輸出類型爲 table
    set global log_output=‘file’; – 設置輸出類型爲file

5. 數據加密
防止數據庫中數據在存儲和傳輸中失密的有效手段
(1)加密的基本思想
根據一定的算法將原始數據—明文(Plain text)變換爲不可直接識別的格式­—**密文(Cipher text
(2)加密方法
1)存儲加密
①透明存儲加密:內核級加密保護方式,對用戶完全透明將數據在寫到磁盤時對數據進行加密,授權用戶讀取數據時再對其進行解密數據庫的應用程序不需要做任何修改,只需在創建表語句中說明需加密的字段即可。
內核級加密方法: 性能較好,安全完備性較高
②非透明存儲加密,通過多個加密函數實現

2)傳輸加密
①鏈路加密:在鏈路層進行加密,傳輸信息由報頭和報文兩部分組成,報文和報頭均加密。
②端到端加密:在發送端加密,接收端解密;只加密報文不加密報頭;所需密碼設備數量相對較少,容易被非法監聽者發現並從中獲取敏感信息

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

  1. 其他安全性保護
    (1)推理控制:
    處理強制存取控制未解決的問題,避免用戶利用能夠訪問的數據推知更高密級的數據,常用方法:基於函數依賴的推理控制、基於敏感關聯的推理控制。
    (2)隱蔽信道:
    處理強制存取控制未解決的問題
    (3)數據隱私保護:
    描述個人控制其不願他人知道或他人不便知道的個人數據的能力;範圍很廣:數據收集、數據存儲、數據處理和數據發佈等各個階段
發佈了57 篇原創文章 · 獲贊 5 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章