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

Oracle 使用者權限體系完整指南:系統權限、物件權限、角色管理

     編輯:Oracle 資料庫基礎

Oracle 權限分為系統權限(連線、建表、建視圖等)與物件權限(特定表的 SELECT/INSERT 等)。角色為權限集合,簡化授權管理。本文涵蓋建立角色、系統/物件權限授予與回收、欄位級授權、生效時機、預設角色五大面向。

一、建立角色

CREATE ROLE clerk IDENTIFIED BY bicentennial;  -- 需密碼啟用
CREATE ROLE clerk;                             -- 無密碼,直接啟用

二、系統權限授予與回收

授予

GRANT CREATE SESSION TO jward;
GRANT CREATE TABLE TO michael WITH ADMIN OPTION;  -- 可轉授、管理、刪除角色

同時建立使用者並授權

GRANT CONNECT TO ssmith IDENTIFIED BY p1q2r3;

回收

REVOKE CREATE TABLE FROM tsmith;  -- ADMIN OPTION 不可單獨回收

三、物件權限授予與回收

授予

GRANT SELECT, INSERT, DELETE ON emp TO jfee, tsmith;
GRANT ALL ON emp TO jfee;
GRANT SELECT ON emp TO jfee WITH GRANT OPTION;  -- 可轉授、建視圖並授權

欄位級授權

GRANT INSERT (acct_no) ON accounts TO scott;

回收

REVOKE ALL ON dept FROM human_resource;
-- 擁有 GRANT OPTION 的使用者被回收物件權限時,其轉授對象權限連帶回收

四、授權/回收生效時機

  • 系統/物件權限:立即生效。
  • 角色授予/回收:下一個 Session 生效,除非使用 SET ROLE。
SET ROLE clerk IDENTIFIED BY bicentennial;  -- 立即啟用
SET ROLE NONE;                              -- 關閉所有角色

五、指定使用者預設角色

ALTER USER jane DEFAULT ROLE payclerk, pettycash;

登入時自動啟用列表中的角色(需無密碼或密碼正確)。

關鍵視圖查詢

  • DBA_SYS_PRIVS / USER_SYS_PRIVS:系統權限
  • USER_TAB_PRIVS:物件權限
  • DBA_ROLE_PRIVS:角色授予關係
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved