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

Oracle 命令列建立與刪除使用者完整指令集

     編輯:Oracle 資料庫基礎

Oracle 命令列建立與刪除使用者完整指令集

透過 SQL*Plus 命令列管理使用者帳號是 DBA 基本功。本文提供標準化的建立/刪除使用者指令範本,含權限授予、角色指派與帳號解鎖完整流程。

刪除使用者(含連結物件)

CONNECT / AS SYSDBA;
SHUTDOWN ABORT;
STARTUP;
DROP USER user1 CASCADE;
EXIT;

說明:CASCADE 會連同使用者擁有的所有物件一併刪除;SHUTDOWN ABORT 確保無殘留 Session 阻擋刪除。

建立使用者完整範本

CREATE USER user1
IDENTIFIED BY VALUES 'fa091872a2cc669c'
DEFAULT TABLESPACE user1
TEMPORARY TABLESPACE temp
PROFILE default
ACCOUNT UNLOCK;

-- 角色授予(含 ADMIN OPTION 可轉授)
GRANT recovery_catalog_owner TO user1 WITH ADMIN OPTION;
GRANT resource TO user1 WITH ADMIN OPTION;
GRANT dba TO user1 WITH ADMIN OPTION;
GRANT connect TO user1 WITH ADMIN OPTION;

-- 設定預設角色
ALTER USER user1 DEFAULT ROLE ALL;

-- 系統權限授予
GRANT select any dictionary TO user1 WITH ADMIN OPTION;
GRANT unlimited tablespace TO user1 WITH ADMIN OPTION;
GRANT alter any procedure TO user1 WITH ADMIN OPTION;

關鍵子句說明

子句用途
IDENTIFIED BY VALUES指定加密後的密碼雜湊值(適用於遷移場景)
DEFAULT TABLESPACE指定使用者預設永久表空間
TEMPORARY TABLESPACE指定暫存表空間
PROFILE指定資源限制與密碼策略設定檔
ACCOUNT UNLOCK確保帳號為解鎖狀態
WITH ADMIN OPTION允許受授者再轉授該權限/角色
DEFAULT ROLE ALL登入時自動啟用所有已授予角色

安全性最佳實務

  1. 避免直接授予 DBA 角色,依最小權限原則授予必要物件權限
  2. 生產環境使用 IDENTIFIED BY "complex_password" 而非 VALUES 雜湊
  3. 建立專用 PROFILE 限制密碼壽命、失敗嘗試次數、Session 閒置時間
  4. 定期審核 DBA_SYS_PRIVS、DBA_TAB_PRIVS、DBA_ROLE_PRIVS
  5. 使用 REVOKE 回收不再需要的權限

常用查詢驗證指令

-- 查詢使用者系統權限
SELECT * FROM dba_sys_privs WHERE grantee = 'USER1';

-- 查詢使用者物件權限
SELECT table_name, privilege FROM dba_tab_privs WHERE grantee = 'USER1';

-- 查詢使用者角色
SELECT * FROM dba_role_privs WHERE grantee = 'USER1';

-- 查詢當前 Session 有效系統權限
SELECT * FROM session_privs;
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved