oracle:用戶、特權和角色,審計

創建用戶:

CREATE USER user_name IDENTIFIED BY password

[DEFAULT TABLESPACE default_tablespace]

[temporary TABLESPACE temporary_tablespace]

修改用戶密碼:

ALTER USER jason IDENTIFIED BY marcus

PASSWORD 修改當前登錄用戶的密碼。

刪除用戶:

DROP USER jason


向用戶授予系統特權:

GRANT CREATE SESSION,EXECUTE ANY PROCEDURE TO steve WITH ADMIN OPTION

WITH ADMIN OPTION :所授權的用戶可以將這種特權再授予其他用戶。

檢查授予用戶的系統特權:

SELECT * 

FROM user_sys_privs;

ORDER BY privilege;

撤銷用戶的系統特權:

REVOKE CREATE TABLE FROM steve;


向用戶授予對象特權:

GRANT SELECT,INSERT,UPDATE ON store.product s TO steve WITH GRANT OPTION;(WITH GRANT OPTION所授權的用戶就可以把這種特權)

撤銷用戶的對象特權:

REVOKE INSERT ON products FROM steve;

檢查某個用戶對哪些表向其他用戶開放了哪些對象特權。

SELECT *

FROM user_tab_privs_made (user_col_privs_made列)

WHERE table_name = 'PRODUCTS';

檢查某個用戶被授予了哪些表上的哪些對象特權。

SELECT *

FROM user_tab_privs_recd(user_col_privs_recd某個用戶被授予了哪些列的對象特權)

同名對象

CREATE SYNONYM customers FOR store.customers;

公共同名對象

CREATE PUBLIC SYNONYM products FOR store.products;


創建角色

CREATE ROLE product_manager;

CREATE ROLE hr_manager;

CREATE ROLE overall_manager IDENTIFIED BY manger_password

爲角色授權

GRANT SELECT,INSERT,UPDATE,DELETE ON product_types TO product_manager;

GRANT SELECT,INSERT,UPDATE,DELETE ON products TO product_manager;

GRANT SELECT,INSERT,UPDATE,DELETE ON salary_grades TO hr_manager;

GRANT SELECT,INSERT,UPDATE,DELETE ON employees TO hr_manager;

GRANT CREATE USER TO hr_manager;

GRANT product_manager, hr_manager TO overall_manager;

將角色授予用戶

GRANT overall_manager TO steve;

檢查授予用戶的角色

SELECT * FROM user_role_privs;

檢查授予角色的系統特權

SELECT * FROM role_sys_privs;

檢查授予角色的對象特權

SELECT * FROM role_tab_privs


默認角色:用戶連接到數據庫上時,就可以自動使用這種角色了

ALTER ROLE修改,使其變爲非默認角色。

ALTER USER steve DEFAULT ROLE ALL EXCEPT overall_manager;

啓用角色

SET ROLE overall_manager IDENTIFIED BY manager_password

清空角色的設置

SET ROLE NONE 

將角色設置爲除overall_manager之外的任何角色

SET ROLE ALL EXCEPT overall_manager

撤銷角色

REVOKE overall_manager FROM steve;

從角色中撤銷特權

REVOKE ALL ON products FROM  product_manager;

刪除角色

DROP ROLE overall_manager;

DROP ROLE product_manager;

DROP ROLE hr_manager;


審計  跟蹤數據庫操作

執行審計需要的特權:

審計高級別操作 GRANT AUDIT SYSTEM TO store

跟蹤特定數據庫對象上的操作時,要麼擁有AUDIT ANY特權,要麼數據庫對象必須在他們的模式中。 GRANT AUDIT ANY TO store

USER _AUDIT_TRAIL視圖查看對當前登錄用戶的審計跟蹤信息。

SELECT * FROM user_audit_trail WHERE audit_option = 'CREATE TABLE';

例:AUDIT SELECT TABLE,INSERT TABLE,UPDATE TABLE,DELETE TABLE BY store,steve;

AUDIT SELECT ON store.products;

AUDIT ALL ON store.employees;

WHENEVER SUCCESSFUL 當語句執行成功時進行審計 AUDIT INSERT TABLE WHENEVER NOT SUCCESSFUL

WHENEVER NOT SUCCESSFUL 當語句執行不成功時進行審計 AUDIT INSERT TABLE WHENEVER SUCCESSFUL


BY SESSION 對同一個用戶數據庫會話期間所發出的同一類語句只有一個審計記錄。

BY ACCESS每次發出的同一類語句都有一個審計記錄,與用戶會話無關。


審計跟蹤視圖

USER_AUDIT_OBJECT 當前用戶可訪問的所有對象的審計記錄

USER_AUDIT_SESSION 當前用戶連接到數據庫和斷開數據庫連接的審計記錄

USER_AUDIT_STATEMENT 當前用戶發出的GRANT,REVOKE,AUDIT,NOAUDIT,ALTER SYSTEM語句的審計記錄

USER_AUDIT_TRAIL 與當前用戶相關的所有審計跟蹤條目




發佈了53 篇原創文章 · 獲贊 16 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章