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

Oracle 使用者、權限與角色完整管理指南

     編輯:Oracle 資料庫基礎

Oracle 安全體系核心為「使用者 → 角色 → 權限」三層架構。本文系統整理建立/刪除使用者、系統/物件權限、三大預設角色、自訂角色管理與最佳實務。

一、建立與管理使用者

建立使用者

CREATE USER user01 IDENTIFIED BY u01
  DEFAULT TABLESPACE users
  TEMPORARY TABLESPACE temp
  QUOTA UNLIMITED ON users;

修改密碼

-- 方式一:ALTER USER(密碼明文顯示)
ALTER USER user01 IDENTIFIED BY usr01;

-- 方式二:PASSWORD 命令(互動式隱藏輸入,DBA 可改他人密碼)
PASSWORD user01
-- Old password: ***
-- New password: ***
-- Retype new password: ***

刪除使用者


DROP USER user01;                    -- 無物件才能刪除
DROP USER user01 CASCADE;            -- 連同物件一併刪除

二、權限體系

類別範例說明
系統權限CREATE TABLE, CREATE SESSION, DROP ANY TABLE, GRANT ANY PRIVILEGE授權執行特定資料庫管理動作
物件權限SELECT, INSERT, UPDATE, DELETE, EXECUTE, REFERENCES ON schema.table授權操作特定物件

三、三大預設角色

角色用途核心權限
CONNECT臨時/只讀使用者CREATE SESSION, CREATE TABLE, CREATE VIEW, CREATE SEQUENCE, CREATE SYNONYM, CREATE DATABASE LINK 等
RESOURCE正式開發人員CONNECT 所有權限 + CREATE PROCEDURE, CREATE TRIGGER, CREATE INDEX, CREATE CLUSTER 等
DBA資料庫管理員所有系統權限、無限表空間配額、授權/撤銷任意權限

授權與撤銷角色

GRANT CONNECT, RESOURCE TO user01;
REVOKE CONNECT, RESOURCE FROM user01;
撤銷角色不會刪除使用者建立的物件,僅禁止後續存取。

四、自訂角色

建立角色

CREATE ROLE student;

授權給角色

GRANT SELECT ON class TO student;
GRANT INSERT, UPDATE ON student_scores TO student;

將角色授予使用者

GRANT student TO user01;

刪除角色

DROP ROLE student;

五、最佳實務建議

  • 最小權限原則:僅授予完成工作所需的最小權限集,避免直接授 DBA。
  • 角色分層:業務角色(如 APP_READ, APP_WRITE) → 功能角色(CREATE_TABLE) → 系統角色(RESOURCE),透過角色嵌套管理。
  • 密碼策略:啟用 Profile 設定 PASSWORD_LIFE_TIME, PASSWORD_GRACE_TIME, FAILED_LOGIN_ATTEMPTS 等。
  • 審計:關鍵物件啟用 AUDIT SELECT, INSERT, UPDATE, DELETE ON sensitive_table BY ACCESS。
  • 定期清理:檢視 DBA_USERS、DBA_ROLE_PRIVS,移除離職人員、廢棄角色。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved