- 王珊《數據庫系統概論》(第4版)【教材精講+考研真題解析】講義與視頻課程【28小時高清視頻】
- 圣才電子書
- 2888字
- 2021-06-04 18:05:04
4.2 數據庫安全性控制概述

視頻二維碼(掃碼觀看)
◆非法使用數據庫的情況
·編寫合法程序繞過DBMS及其授權機制
·直接或編寫應用程序執行非授權操作
·通過多次合法查詢數據庫從中推導出一些保密數據
例:某數據庫應用系統禁止查詢單個人的工資,但允許查任意一組人的平均工資。用戶甲想了解張三的工資,于是他:
首先查詢包括張三在內的一組人的平均工資,然后查用自己替換張三后這組人的平均工資,從而推導出張三的工資
·破壞安全性的行為可能是無意的,故意的,惡意的。
·計算機系統中,安全措施是一級一級層層設置。
計算機系統的安全模型:

◆數據庫安全性控制的常用方法
·用戶標識和鑒定
·存取控制
·視圖
·審計
·密碼存儲
4.2.1 用戶標識與鑒別
◆用戶標識與鑒別(Identification & Authentication)
·系統提供的最外層安全保護措施。
基本方法
·系統提供一定的方式讓用戶標識自己的名字或身份
·系統內部記錄著所有合法用戶的標識;
·每次用戶要求進入系統時,由系統核對用戶提供的身份標識;
·通過鑒定后才提供機器使用權;
·用戶標識和鑒定可以重復多次。
◆用戶標識
◆口令
·系統核對口令以鑒別用戶身份
◆用戶名和口令易被竊取
·每個用戶預先約定好一個計算過程或者函數
·系統提供一個隨機數
·用戶根據自己預先約定的計算過程或者函數進行計算
·系統根據用戶計算結果是否正確鑒定用戶身份
◆有些DBMS除了訪問DBMS的賬號外,為了訪問制定的數據庫,還需要另外的賬號
4.2.2 存取控制
◆存取控制機制組成
·定義用戶權限
·合法權限檢查
◆用戶權限定義和合法權檢查機制一起組成了DBMS的安全子系統。
◆常用存取控制方法
·自主存取控制(Discretionary Access Control,簡稱DAC):用戶對不同的數據對象有不同的存取權限,不同用戶對同一對象有不同的權限,可轉授用戶存取權限。
C2級靈活
·強制存取控制(Mandatory Access Control,簡稱MAC):每一數據對象標以一定密級,每一用戶對應某一級別的許可證,只有具有合法許可證的用戶才可以存取某一對象。
B1級嚴格
◆常用存取控制方法
·自主存取控制DAC
①同一用戶對于不同的數據對象有不同的存取權限
②不同的用戶對同一對象也有不同的權限
③用戶還可將其擁有的存取權限轉授給其他用戶
·強制存取控制MAC
①每一個數據對象被標以一定的密級
②每一個用戶也被授予某一個級別的許可證
③對于任意一個對象,只有具有合法許可證的用戶才可以存取
4.2.3 自主存取控制方法
◆定義存取權限
·存取權限由兩個要素組成:
①數據對象
②操作類型

◆通過SQL的GRANT語句和REVOKE語句實現
◆用戶權限組成
數據對象
操作類型
◆定義用戶存取權限
定義用戶可以在哪些數據庫對象上進行哪些類型的操作
◆定義存取權限稱為授權
◆關系數據庫系統中存取控制對象
關系數據庫中的存取權限:

4.2.4 授權與回收

視頻二維碼(掃碼觀看)
一、GRANT
◆GRANT語句的一般格式
GRANT <權限>[,<權限>]… [ON <對象類型> <對象名>] TO <用戶>[,<用戶>]… [WITH GRANT OPTION];
◆語義
將對指定操作對象的指定操作權限授予指定的用戶
◆發出GRANT
·DBA
·數據庫對象創建者(即屬主Owner)
·擁有該權限的用戶
◆接受權限的用戶
·一個或多個具體用戶
·PUBLIC(全體用戶)
◆WITH GRANT OPTION子句
·指定:可以再授予
·沒有指定:不能傳播
◆不允許循環授權

例題
【例1】把查詢Student表權限授給用戶U1
GRANT SELECT ON TABLE Student TO U1;
【例2】把對Student表和Course表的全部權限授予用戶U2和U3
GRANT ALL PRIVILIGES ON TABLE Student,Course TO U2,U3;
【例3】把對表SC的查詢權限授予所有用戶
GRANT SELECT ON TABLE SC TO PUBLIC;
【例4】把查詢Student表和修改學生學號的權限授給用戶U4
GRANT UPDATE(Sno),SELECT ON TABLE Student TO U4;
對屬性列的授權時必須明確指出相應屬性列名
【例5】把對表SC的INSERT權限授予U5用戶,并允許他再將此權限授予其他用戶
GRANT INSERT ON TABLE SC TO U5 WITH GRANT OPTION;
傳播權限
執行【例5】后,U5不僅擁有了對表SC的INSERT權限,還可以傳播此權限:
【例6】GRANT INSERT ON TABLE SC TO U6 WITH GRANT OPTION;
同樣,U6還可以將此權限授予U7:
【例7】GRANT INSERT ON TABLE SC TO U7;
但U7不能再傳播此權限。
下表是執行了【例1】到【例7】的語句后,學生-課程數據庫中的用戶權限定義表:

二、REVOKE
◆授予的權限可以由DBA或其他授權者用REVOKE語句收回
◆REVOKE語句的一般格式為:
REVOKE <權限>[,<權限>]… [ON <對象類型> <對象名>] FROM <用戶>[,<用戶>]…;
【例8】把用戶U4修改學生學號的權限收回
REVOKE UPDATE(Sno) ON TABLE Student FROM U4;
【例9】收回所有用戶對表SC的查詢權限
REVOKE SELECT ON TABLE SC FROM PUBLIC;
【例10】把用戶U5對SC表的INSERT權限收回
REVOKE INSERT ON TABLE SC FROM U5 CASCADE;
·將用戶U5的INSERT權限收回的時候必須級聯(CASCADE)收回
·系統只收回直接或間接從U5處獲得的權限
執行【例8】到【例10】的語句后,學生-課程數據庫中的用戶權限定義表:

小結:SQL靈活的授權機制
◆DBA:擁有所有對象的所有權限
·不同的權限授予不同的用戶
◆用戶:擁有自己建立的對象的全部的操作權限
·GRANT:授予其他用戶
◆被授權的用戶
·“繼續授權”許可:再授予
◆所有授予出去的權力在必要時又都可用REVOKE語句收回
三、創建數據庫模式的權限
◆DBA在創建用戶時實現
◆CREATE USER語句格式
CREATE USER <username> [WITH][DBA | RESOURCE | CONNECT];
權限與可執行的操作對照表:


授權的一些其他問題
◆如果一個用戶創建了一個對象(關系/視圖/角色),則擁有對此基表的全部權限(包括授予別人權限的權限)!
◆SQL授權的一些缺陷:
·不能實現元組級的授權(可以通過視圖或觸發器來實現)
·視圖的一些問題
4.2.5 數據庫角色
◆數據庫角色:被命名的一組與數據庫操作相關的權限
·角色是權限的集合
·可以為一組具有相同權限的用戶創建一個角色
·簡化授權的過程
一、角色的創建
CREATE ROLE <角色名>;
二、給角色授權
GRANT <權限>[,<權限>]… ON <對象類型>對象名 TO <角色>[,<角色>]…;
三、將一個角色授予其他的角色或用戶
GRANT <角色1>[,<角色2>]… TO <角色3>[,<用戶1>]… [WITH ADMIN OPTION];
四、角色權限的收回
REVOKE <權限>[,<權限>]… ON <對象類型> <對象名> FROM <角色>[,<角色>]…;
【例11】通過角色來實現將一組權限授予一個用戶。
步驟如下:
1.首先創建一個角色R1
CREATE ROLE R1;
2.然后使用GRANT語句,使角色R1擁有Student表的SELECT、UPDATE、INSERT權限
GRANT SELECT,UPDATE,INSERT ON TABLE Student TO R1;
3.將這個角色授予王平,張明,趙玲。使他們具有角色R1所包含的全部權限
GRANT R1 TO 王平,張明,趙玲;
4.可以一次性通過R1來回收王平的這3個權限
REVOKE R1 FROM 王平;
【例12】角色的權限修改
GRANT DELETE ON TABLE Student TO R1;
【例13】
REVOKE SELECT ON TABLE Student FROM R1;
4.2.6 強制存取控制方法
◆自主存取控制缺點
可能存在數據的“無意泄露”
◆原因:這種機制僅僅通過對數據的存取權限來進行安全控制,而數據本身并無安全性標記。
◆解決:對系統控制下的所有主客體實施強制存取控制策略。
◆強制存取控制(MAC)
·保證更高程度的安全性
·用戶能不能直接感知或進行控制
·適用于對數據有嚴格而固定密級分類的部門
①軍事部門
②政府部門
◆主體是系統中的活動實體
·DBMS所管理的實際用戶
·代表用戶的各進程
◆客體是系統中的被動實體,是受主體操縱的
·文件
·基表
·索引
·視圖
◆敏感度標記(Label)
·絕密(Top Secret)
·機密(Secret)
·可信(Confidential)
·公開(Public)
◆主體的敏感度標記稱為許可證級別(Clearance Level)
◆客體的敏感度標記稱為密級(Classification Level)
◆強制存取控制規則
(1)僅當主體的許可證級別大于或等于客體的密級時,該主體才能讀取相應的客體
(2)僅當主體的許可證級別等于客體的密級時,該主體才能寫相應的客體
◆修正規則
·主體的許可證級別<=客體的密級→主體能寫客體
◆規則的共同點
禁止了擁有高許可證級別的主體更新低密級的數據對象
MAC與DAC
◆DAC與MAC共同構成DBMS的安全機制
◆實現MAC時要首先實現DAC
原因:較高安全性級別提供的安全保護要包含較低級別的所有保護
·DAC+MAC安全檢查示意圖

◆先進行DAC檢查,通過DAC檢查的數據對象再由系統進行MAC檢查,只有通過MAC檢查的數據對象方可存取。
- 康華光《電子技術基礎-模擬部分》(第5版)配套題庫【名校考研真題+課后習題+章節題庫+模擬試題】
- 高鴻業《西方經濟學(宏觀部分)》(第5版)章節習題精編詳解
- 楊保軍《新聞理論教程》(第3版)筆記和課后習題(含考研真題)詳解[視頻講解]
- 孫國華《法理學》(第3版)筆記和課后習題(含考研真題)詳解
- 休斯《公共管理導論》筆記和考研真題詳解(第3版)
- 袁衛《統計學》(第4版)配套題庫【名校考研真題+課后習題+章節題庫+模擬試題】
- 梁思成《中國建筑史》筆記和典型題(含考研真題)詳解
- 周三多《管理學》(第3版)筆記和課后習題(含考研真題)詳解【視頻講解】
- 關信平《社會研究方法》筆記和考研真題詳解【含10套名校考研真題及詳解】
- 朱智賢《兒童心理學》配套題庫【名校考研真題+章節題庫+模擬試題】
- 黃樺《稅收學》(第4版)筆記和課后習題(含考研真題)詳解
- 武漢大學819宏微觀經濟學歷年考研真題及詳解【視頻講解】
- 廣西民族大學外國語學院622基礎英語歷年考研真題及詳解
- 羅賓斯《組織行為學》(第14版)【教材精講+考研真題解析】講義與視頻課程【27小時高清視頻】
- 武漢大學信息管理學院441出版專業基礎[專業碩士]歷年考研真題及詳解