應試筆記7:數據庫安全性、自發存取機制技術、視圖技術、審計技術

 

用戶標識

口令

    系統覈對口令以鑑別用戶身份

用戶名和口令易被竊取

    每個用戶預先約定好一個計算過程或者函數


存取控制機制

組成       

定義用戶權限

合法權限檢查

用戶權限定義和合法權檢查機制一起組成了DBMS的安全子系統

常用存取控制方法

自主存取控制(Discretionary Access Control ,簡稱DAC)  C2級  靈活

強制存取控制(Mandatory Access Control,簡稱 MAC) B1級 嚴格


自主存取(DAC)

通過 SQL 的 GRANT 語句和 REVOKE 語句實現

授權 GRANT

語義:(有該操作權限的用戶/DBA)將對指定操作對象的指定操作權限授予指定的用戶       

GRANT <權限>[,<權限>]...        

[ON <對象類型> <對象名>]        

TO <用戶>[,<用戶>]...        

[WITH GRANT OPTION]; //有這句話,表示可以把權限授予下一級用戶,不能循環

對象類型

對象

操 作 類 型

數據庫

模式

CREATE SCHEMA

 

基本表

CREATE TABLE,ALTER TABLE

模式

視圖

CREATE VIEW

 

索引

CREATE INDEX

數據

基本表和視圖

SELECT,INSERT,UPDATE,DELETE,REFERENCES,

ALL PRIVILEGES

數據

屬性列

SELECT,INSERT,UPDATE, REFERENCES(對列授權,須指出列名)

 

 

ALL PRIVILEGES

 收回 REVOKE

REVOKE <權限>[,<權限>]...      

[ON <對象類型> <對象名>]      

FROM <用戶>[,<用戶>]...;


舉例

grant

[例1] 把查詢Student表權限授給用戶U1

    grant select on table student to u1;

[例2] 把對Student表和Course表的全部權限授予用戶U2和U3

    grant all privileges on table student , course to u2,u3;

[例3] 把對錶SC的查詢權限授予所有用戶

    grant select on table sc to public;

[例4] 把查詢Student表和修改學生學號的權限授給用戶U4(對列授權,須指出列名)

    grant select,update(sno) on table student to u4;

[例5] 把對錶SC的插入權限授予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不能再傳播此權限。

revoke

[例8] 把用戶U4修改學生學號的權限收回

    revoke update(sno) on table student from u4;

[例9] 收回所有用戶對錶SC的查詢權限

    revoke select on table sc from public;

[例10] 把用戶U5對SC表的插入權限收回

    revoke insert on table from u5 cascade;

將用戶U5的INSERT權限收回的時候必須級聯(CASCADE)

收回 系統只收回直接或間接從U5處獲得的權限


數據庫角色

角色是權限的集合

可以爲一組具有相同權限的用戶創建一個角色

簡化授權的過程


1創建用戶(DBA)

CREATE USER語句格式 

CREATE  USER  <username>  

[WITH][DBA | RESOURCE | CONNECT]

擁有的權限

可否執行的操作

CREATE USER

CREATE SCHEMA

CREATE TABLE

登錄數據庫 執行數據查詢和操縱

DBA

可以

可以

可以

可以

RESOURCE

不可以

不可以

不可以

不可以

CONNECT

不可以

不可以

不可以

可以,但必須擁有相應權限

2創建角色

CREATE  ROLE  角色名

3給角色授權  

GRANT  <權限>[,<權限>]…  

ON <對象類型>對象名    

TO <角色>[,<角色>]…

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

GRANT  <角色1>[,<角色2>]…

TO  <角色3>[,<用戶1>]… [

WITH ADMIN OPTION]

5角色權限的收回

REVOKE <權限>[,<權限>]…

ON <對象類型> <對象名>

FROM <角色>[,<角色>]…


強制存取控制(MAC)

保證更高程度的安全性

用戶能不能直接感知或進行控制

適用於對數據有嚴格而固定密級分類的部門 :軍事部門  政府部門

權限:

敏感度標記(Label) :絕密(Top Secret) 機密(Secret) 可信(Confidential) 公開(Public)

主體就是使用客體的DBA、進程,客體就是基本表、視圖等。

主體的敏感度標記,稱爲許可證級別

客體的敏感度標記,稱爲密級

 強制存取控制規則

 (1)主體>=客體時,主體才能客體

 (2)主體==客體時,主體才能客體

修正規則:主體<=客體,主體能寫客體///?爲什麼這裏變成了<=才能寫?

DAC與MAC共同構成DBMS的安全機制:實現MAC時要首先實現DAC


視圖技術

(建一個視圖,然後把視圖的查詢權限給用戶。其他數據用戶就找不到了)

保密的數據對無權存取這些數據的用戶隱藏

主要功能:提供數據獨立性, 間接實現:支持存取謂詞的用戶權限定義


審計技術

審計日誌(Audit Log):將用戶對數據庫的所有操作記錄在上面

DBA利用審計日誌 :找出非法存取數據的人、時間和內容

C2以上安全級別的DBMS必須具有

分類

用戶級審計 

針對自己創建的數據庫表或視圖

記錄所有用戶對這些表、視圖的一切訪問要求以及SQL操作

系統級審計

DBA設置

監測成功或失敗的登錄要求

監測GRANT和REVOKE操作以及其他數據庫級權限下的操作

設置審計功能:audit

取消審計功能:noaudit

[例15]對修改SC表結構或修改SC表數據的操作進行審計     audit alter,update on sc;

[例16]取消對SC表的一切審計   noaudit alter,update on sc


 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章