(一)權限
數據庫安全性:
- 系統安全性
- 數據安全性
系統權限: 對於數據庫的權限
對象權限: 操作數據庫對象的權限
系統權限
超過一百多種有效的權限
數據庫管理員(DBA)具有高級權限以完成管理任務,例如:
- 創建新用戶
- 刪除用戶
- 刪除表
- 備份表
(二)用戶
1、創建用戶
Oracle登錄用戶為system用戶,system用戶是一個DBA
DBA使用CREATE USER語句創建用戶
CREATE USER user
IDENTIFIED BY password;
使用atguigu用戶登錄
缺少CREATE SESSION權限,無法登錄,在下面會對其賦予權限
2、用戶的系統權限
用戶創建之后, DBA 會賦予用戶一些系統權限
GRANT privilege [, privilege...]
TO user [, user | role, PUBLIC...];
以應用程序開發者為例, 一般具有下列系統權限:
- CREATE SESSION(創建會話)
- CREATE TABLE(創建表)
- CREATE SEQUENCE(創建序列)
- CREATE VIEW(創建視圖)
- CREATE PROCEDURE(創建過程)
-- 授予atguigu用戶CREATE SESSION權限
再次登錄atguigu用戶,登錄成功
在atguigu用戶中創建表
在system用戶中給atguigu賦予創表權限
再次在atguigu用戶中創建表
3、創建用戶表空間
用戶擁有create table權限之外,還需要分配相應的表空間才可開辟存儲空間用於創建的表
-- 為atguigu用戶創建一個不限額的表空間
-- 為atguigu用戶創建一個5M的表空間
4、修改密碼
用戶可以修改自己的密碼
(三)角色
創建角色並賦予權限
創建角色
給角色賦予權限
將角色賦予用戶
(四)對象
1、對象權限
- 不同的對象具有不同的對象權限
- 對象的擁有者擁有所有權限
- 對象的擁有者可以向外分配權限
2、分配對象權限
GRANT object_priv [(columns)]
ON object
TO {user|role|PUBLIC}
[WITH GRANT OPTION];
-- 將employees的select,update權限授予atguigu用戶
在atguigu用戶中查詢employees表
3、WITH GRANT OPTION和PUBLIC關鍵字
WITH GRANT OPTION 使用戶同樣具有分配權限的權利
在system用戶下完成以下命令
在atguigu用戶中可以將此權限授予其他用戶
PUBLIC向數據庫中所有用戶分配權限
在system用戶下完成以下命令
則這個數據庫中的用戶都具有這兩個權限
4、查詢權限分配情況
-- 查詢用戶擁有的關於表對象權限
5、收回對象權限
- 使用 REVOKE 語句收回權限
- 使用 WITH GRANT OPTION 子句所分配的權限同樣被收回
REVOKE {privilege [, privilege...]|ALL}
ON object FROM {user[, user...]|role|PUBLIC}
[CASCADE CONSTRAINTS];
-- 收回atguigu對於employees表的select權限
(五)總結
使用 DCL 控制數據庫權限, 創建數據庫聯接: