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

Oracle 用戶管理完整指南:建立、修改、刪除、查詢與權限控制

     編輯:Oracle 資料庫基礎

CREATE USER 語法詳解

CREATE USER username
IDENTIFIED {BY password | EXTERNALLY}
[DEFAULT TABLESPACE tablespace_name]
[TEMPORARY TABLESPACE tablespace_name]
[QUOTA {size [K|M] | UNLIMITED} ON tablespace_name]
[PASSWORD EXPIRE]
[ACCOUNT {LOCK | UNLOCK}]
[PROFILE profile_name];

參數說明

參數用途
IDENTIFIED BY password資料庫驗證模式,指定登入密碼
IDENTIFIED EXTERNALLY作業系統驗證模式(OPS$ 用戶)
DEFAULT TABLESPACE用戶建立物件時的預設表空間
TEMPORARY TABLESPACE排序、哈希連接等臨時段儲存空間
QUOTA限制用戶在指定表空間的儲存額度,UNLIMITED 為無上限
PASSWORD EXPIRE強制用戶首次登入時修改密碼
ACCOUNT LOCK/UNLOCK鎖定/解鎖帳號,鎖定後無法登入
PROFILE指定資源限制檔(密碼策略、Session 限制等)

實戰範例

1. 建立資料庫驗證用戶

CREATE USER testUser
IDENTIFIED BY test
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
QUOTA UNLIMITED ON USERS
PASSWORD EXPIRE
ACCOUNT UNLOCK
PROFILE DEFAULT;

2. 授予基本連線權限(必要步驟)

GRANT CREATE SESSION TO testUser;

無 CREATE SESSION 權限無法建立資料庫連線。

3. 修改用戶屬性

ALTER USER testUser IDENTIFIED BY newPass;  -- 修改密碼
ALTER USER testUser ACCOUNT LOCK;           -- 鎖定帳號
ALTER USER testUser DEFAULT TABLESPACE NEW_TBS; -- 變更預設表空間

4. 刪除用戶

DROP USER testUser CASCADE;

CASCADE 會連同用戶擁有的所有物件(表、視圖、序列等)一併刪除,謹慎使用。

5. 查詢用戶資訊

-- 所有用戶基本資訊
SELECT * FROM ALL_USERS;

-- 詳細狀態(含密碼雜湊、帳號狀態、鎖定時間等)
SELECT username, password, account_status, lock_date, expiry_date
FROM DBA_USERS;

最佳實務建議

  • 生產環境一律使用 PROFILE 強制密碼複雜度、過期天數、失敗鎖定策略。
  • 應用程式用戶僅授予必要物件權限,避免直接給 DBA 或 RESOURCE 角色。
  • 定期審核 DBA_USERS 中 ACCOUNT_STATUS 非 OPEN 的帳號。
  • 離職/專案結束時立即 ALTER USER ... ACCOUNT LOCK,保留物件供稽核,再排程 DROP USER ... CASCADE。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved