資料庫,資料庫學習
電腦系統安全性
為電腦系統建立和採取的各種安全保護措施,以保護電腦系統中的硬體、軟體及資料,防止其因偶然或惡意的原因使系統遭到破壞,資料遭到更改或泄露等。
問題的提出資料庫的一大特點是資料可以共用資料共用必然帶來資料庫的安全性問題資料庫系統中的資料共用不能是無條件的共用例: 軍事秘密、國家機密、新產品實驗資料、 市場需求分析、市場營銷策略、銷售計劃、 客戶檔案、醫學檔案、銀行儲蓄資料
EC/TDI安全層級劃分
B2以上的系統
還處於理論研究階段
應用多限於一些特殊的部門,如軍隊等
美國正在大力發展安全產品,試圖將目前僅限於少數領域應用的B2安全層級下放到商業應用中來,並逐步成為新的商業標準
CC
CC
提出國際公認的表述資訊技術安全性的結構
把資訊產品的安全要求分為
安全功能要求
安全保證要求
資料庫安全性控制概述
非法使用資料庫的情況
編寫合法程式繞過DBMS及其授權機制
直接或編寫應用程式執行非授權操作
通過多次合法查詢資料庫從中推匯出一些保密資料
使用者標識與鑒別
(Identification & Authentication)
系統提供的最外層安全保護措施
使用者標識
口令
系統核對口令以鑒別使用者身份
使用者名稱和口令易被竊取
每個使用者預先約定好一個計算過程或者函數
存取控制機制
組成
定義使用者權限
合法許可權檢查
使用者權限定義和合法權檢查機制一起組成了 DBMS的安全子系統
常用存取控制方法
自主存取控制(Discretionary Access Control ,簡稱DAC)
C2級
靈活
強制存取控制(Mandatory Access Control,簡稱 MAC)
B1級
嚴格
自主存取控制方法
通過 SQL 的 GRANT 語句和 REVOKE 語句實現
使用者權限組成
資料對象
操作類型
定義使用者存取許可權:定義使用者可以在哪些資料庫物件上進行哪些類型的操作
定義存取許可權稱為授權
授權與回收
一、GRANTGRANT語句的一般格式: GRANT <許可權>[,<許可權>]... [ON <物件類型> <對象名>] TO <使用者>[,<使用者>]... [WITH GRANT OPTION];
語義:將對指定操作對象的指定操作許可權授予指定的使用者
GRANT
發出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不能再傳播此許可權。
二、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;