資料庫系統概論—基礎篇(3) 三.資料庫安全性 1.資料庫安全性概述 資料庫的安全性指保護資料庫以防不合法使用所造成的數據泄露、更改或破壞 2.資料庫安全性控制 2.1用戶身份鑒別 靜態口令鑒別 動態口令鑒別 生物鑒別特征 智能卡鑒別 2.2存取控制 自主存取控制:給用戶限權(DAC,C1級) 強制 ...
資料庫系統概論—基礎篇(3)
三.資料庫安全性
1.資料庫安全性概述
資料庫的安全性指保護資料庫以防不合法使用所造成的數據泄露、更改或破壞
2.資料庫安全性控制
2.1用戶身份鑒別
- 靜態口令鑒別
- 動態口令鑒別
- 生物鑒別特征
- 智能卡鑒別
2.2存取控制
- 自主存取控制:給用戶限權(DAC,C1級)
- 強制存取控制:給資料庫對象一定的密級(MAC,B1級)
2.3自主存取控制方法(授權:授予與收回)
- 授權
Grant 許可權
on (類型,表/視圖...) 對象名1,(類型,表/視圖...) 對象名2...
to 用戶1,用戶2...
with grant option;(是否可以傳播該許可權)
- 收回
Revoke 許可權
on (類型,表/視圖...) 對象名1,(類型,表/視圖...) 對象名2...
from 用戶1,用戶2...
CASADE/RESTRICT;(是否級聯)
- 創建用戶
CREATE USER 用戶名
with DBA/RESOURCE/CONNECT;
DBA:超級用戶,有所有資料庫對象的限權
RESOURCE:能創建表和視圖
CONNECT:只能在限權內操作
2.4資料庫角色
資料庫角色是一組資料庫操作相關的許可權的集合(許可權的集合)
#授予
Grant 許可權
on (類型,表/視圖...) 對象名
to 角色1,角色2...;
#收回
Grant 許可權
on (類型,表/視圖...) 對象名
to 用戶1,用戶2...;
2.5強制存取控制方法(數據加密)
主體:用戶;客體:數據
- 主體的許可證 >= 客體的密級時,該主體才能讀取相應的客體
- 主體的許可證 <= 客體的密級時,該主體才能寫相應的客體
3.視圖機制
視圖可以隱藏部分數據,控制要查詢的數據是否對用戶是可見的
4.審計
審計功能把用戶對資料庫的所有操作記錄下來放入審計日誌
四.資料庫完整性
資料庫完整性是資料庫的正確性和相容性,是為例防止資料庫中存在不符合語義的數據。
1.實體、參照完整性
- 實體:非空唯一,在CREATE TABLE中使用PRIMART KEY定義。(主碼)
- 參照:外碼,參照表的主碼是被參照表的主碼
2用戶自定義完整性
針對某一具體應用的數據必須滿足的語義要求。
- 屬性上的約束(列級)
NOT BULL:列值非空
UNIQUE:列值唯一
CHECK:是否滿足條件(類型 屬性 CHECK(Ssex in('男','女'))性別在男女中選)
- 元組上的約束(表級)
eg:當性別是男,名字不以”Ms.“開頭
建表...
CHECK(Sex = '女' or Sname not like'Ms.%');
3.完整性約束字句
給約束起名字,CONSTRAINT 約束名一起使用
CONSTRAINT 約束名 約束條件;
4.斷言
更一般的約束
#創建
CREATE ASSERTION 斷言名
CHECK字句;
#刪除
DROP ASSERTION 斷言名;
5.觸發器
由事件觸發的特殊過程(事件條件功能)
#創建
CREATE TRIGGER 觸發器名
BEFORE/ALTER 觸發事件 on 表名
REFRTENCING NEW/OLD ROW AS 變數#NEW/OLD ROW是兩個表(新/舊)
FOR EACH ROW/STATEMENT#行級/列級
WHEN 觸發事件 觸發動作;
#刪除
DROP TRIGGER 觸發器名 on 表名;