第十二章 用戶控制權限
1.權限:
數據庫安全性:系統安全性和數據安全性
系統權限: 對於數據庫的權限
對象權限: 操作數據庫對象的權限
2.系統權限
超過一百多種有效的權限
數據庫管理員具有高級權限以完成管理任務,例如:
創建新用戶
刪除用戶
刪除表
備份表
2.1
DBA 使用 CREATE USER 語句創建用戶
CREATE USER user
IDENTIFIED BY password;
CREATE USER scott
IDENTIFIED BY tiger;
2.2
用戶創建之後, DBA 會賦予用戶一些系統權限
GRANT privilege [, privilege...]
TO user [, user| role, PUBLIC...];
以應用程序開發者爲例, 一般具有下列系統權限:
CREATE SESSION(創建會話)
CREATE TABLE(創建表)
CREATE SEQUENCE(創建序列)
CREATE VIEW(創建視圖)
CREATE PROCEDURE(創建過程)
DBA 可以賦予用戶特定的權限
GRANT create session, create table,
create sequence, create view
TO scott;
2.3創建用戶表空間,用戶擁有create table權限之外,還需要分配相應的表空間纔可開闢存儲空間用於創建的表
ALTER USER atguigu01 QUOTA UNLIMITED
ON users
3.角色
創建角色
CREATE ROLE manager;
爲角色賦予權限
GRANT create table, create view
TO manager;
將角色賦予用戶
GRANT manager TO DEHAAN, KOCHHAR;
修改密碼:DBA 可以創建用戶和修改密碼,用戶本人可以使用 ALTER USER 語句修改密碼
ALTER USER scott
IDENTIFIED BY lion;
4.對象權限
不同的對象具有不同的對象權限
對象的擁有者擁有所有權限
對象的擁有者可以向外分配權限
GRANT object_priv [(columns)]
ON object
TO {user|role|PUBLIC}
[WITH GRANT OPTION];
4.1分配對象權限
分配表 EMPLOYEES 的查詢權限
GRANT select
ON employees
TO sue, rich;
分配表中各個列的更新權限
GRANT update
ON scott.departments
TO atguigu
WITH GRANT OPTION 使用戶同樣具有分配權限的權利
GRANT select, insert
ON departments
TO scott
WITH GRANT OPTION;
向數據庫中所有用戶分配權限
GRANT select
ON alice.departments
TO PUBLIC;
數據字典視圖 描述
ROLE_SYS_PRIVS 角色擁有的系統權限
ROLE_TAB_PRIVS 角色擁有的對象權限
USER_ROLE_PRIVS 用戶擁有的角色
USER_TAB_PRIVS_MADE 用戶分配的關於表對象權限
USER_TAB_PRIVS_RECD 用戶擁有的關於表對象權限
USER_COL_PRIVS_MADE 用戶分配的關於列的對象權限
USER_COL_PRIVS_RECD 用戶擁有的關於列的對象權限
USER_SYS_PRIVS 用戶擁有的系統權限
收回對象權限
使用 REVOKE 語句收回權限
使用 WITH GRANT OPTION 子句所分配的權限同樣被收回
REVOKE select, insert
ON departments
FROM scott;