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

Oracle權限管理入門:從用戶建立到物件授權的完整實戰流程

     編輯:Oracle 資料庫基礎

16步驟掌握Oracle權限體系核心操作

系統權限 vs 物件權限、角色管理、PUBLIC授權、欄位級授權,完整實戰流程指南。

前置:連線與啟動


# 1. 啟動監聽器
lsnrctl start
# 2. 啟動實例(Windows)
oradim -startup -sid ORCL
# 3. 一般用戶登入
sqlplus username/password
# 4. DBA登入(SYSDBA)
sqlplus / as sysdba
-- 或 sqlplus sys/password as sysdba

核心權限操作16步驟

步驟操作SQL命令說明
5建立用戶CREATE USER u1 IDENTIFIED BY pwd;僅建立帳號,無任何權限
6授予建立會話權限GRANT CREATE SESSION TO u1;系統權限,允許登入
7授予建表權限GRANT CREATE TABLE TO u1;系統權限,但無表空間配額仍建表失敗
8授予無限表空間GRANT UNLIMITED TABLESPACE TO u1;系統權限,跨所有表空間無配額限制
9撤銷權限REVOKE privilege FROM u1;系統/物件權限通用
10查詢用戶系統權限SELECT * FROM USER_SYS_PRIVS;當前用戶視角
11查詢用戶物件權限SELECT * FROM USER_TAB_PRIVS;被授予/授予他人的表權限
12查詢用戶欄位權限SELECT * FROM USER_COL_PRIVS;欄位級SELECT/UPDATE/REFERENCES
13物件權限授權GRANT SELECT,INSERT ON u1.t1 TO u2;物件擁有者/具GRANT OPTION者可授
14物件權限撤銷REVOKE SELECT ON u1.t1 FROM u2;同授權者可撤銷
15授權給PUBLICGRANT privilege TO PUBLIC;所有用戶(含未來建立)獲得權限,慎用
16欄位級授權GRANT UPDATE(col1,col2) ON t1 TO u1;SELECT/DELETE不支援欄位級

關鍵概念釐清

  • 系統權限:執行特定動作的權利(CREATE TABLE, ALTER SYSTEM...),由DBA授予
  • 物件權限:操作特定物件的權利(SELECT, INSERT...),由物件擁有者授予
  • 角色:權限集合容器,簡化批量授權(GRANT DBA TO role; GRANT role TO user;)
  • GRANT OPTION:GRANT SELECT ON t1 TO u1 WITH GRANT OPTION; 允許受授者轉授

最佳實踐原則

  1. 最小權限原則:僅授予業務必需權限
  2. 角色為基礎授權:建立應用角色(APP_READ, APP_WRITE)而非直接授予用戶
  3. 避免使用PUBLIC:除非極確定(如GRANT EXECUTE ON dbms_output TO PUBLIC)
  4. 定期稽核:DBA_SYS_PRIVS、DBA_TAB_PRIVS、DBA_ROLE_PRIVS
  5. 密碼管理:PROFILE控制密碼複雜度、過期、鎖定策略
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved