首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 用戶權限體系:系統權限與對象權限的授予、查看、角色管理實操

     編輯:Oracle 資料庫基礎

Oracle 權限模型分為系統權限、對象權限,角色是權限集合。本文演示從創建用戶、授予會話/資源權限、分配標準角色、查詢三級權限視圖的標準化流程。

標準用戶創建與授權流程

-- 1. 創建用戶(需 DBA)
CREATE USER db_user IDENTIFIED BY db_user_pw;

-- 2. 授予創建會話權限(登錄前提)
GRANT CREATE SESSION TO db_user;

-- 3. 授予資源角色(含 CREATE TABLE/PROCEDURE/SEQUENCE 等)
GRANT RESOURCE TO db_user;

-- 合併寫法
CREATE USER db_user IDENTIFIED BY db_user_pw DEFAULT TABLESPACE users;
GRANT CREATE SESSION, RESOURCE TO db_user;

權限查詢視圖三級架構

視圖前綴範圍典型查詢
USER_*當前用戶擁有/被授予SELECT * FROM user_tab_privs;(對象權限)
SELECT * FROM user_sys_privs;(系統權限)
ALL_*當前用戶可訪問(含授予他人的)SELECT * FROM all_tab_privs;
DBA_*全庫所有(需 DBA 權限)SELECT * FROM dba_role_privs;(角色授予)

常用權限管理命令

  • 授予系統權限:GRANT CREATE VIEW, CREATE PROCEDURE TO db_user;
  • 授予對象權限:GRANT SELECT, INSERT ON scott.emp TO db_user;
  • 授予角色:GRANT CONNECT, RESOURCE, DBA TO db_user;
  • 撤銷權限:REVOKE CREATE TABLE FROM db_user;
  • 查看角色定義:SELECT * FROM dba_roles;
  • 查看用戶角色:SELECT * FROM user_role_privs;

三大標準角色權限對照

角色核心權限適用對象
CONNECTCREATE SESSION 等 7 項基本權限所有業務用戶
RESOURCECREATE TABLE/SEQUENCE/PROCEDURE/TRIGGER 等開發權限開發人員、應用賬號
DBA所有系統權限、WITH ADMIN OPTION數據庫管理員

最佳實踐:生產環境嚴禁直接授予 DBA,按最小權限原則定制專用角色(如 APP_READONLY、APP_READWRITE、APP_ADMIN),納入權限變更審批流程。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved