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

Oracle 資料庫用戶名稱與密碼修改方法完整指南

     編輯:Oracle 教學

Oracle 資料庫用戶名稱與密碼修改方法完整指南

準備工作

  1. SSH 以 root 登入伺服器
  2. 切換 oracle 用戶:su - oracle
  3. 啟動 sqlplus:sqlplus /nolog
  4. 以 SYSDBA 連線:CONN sys/password AS SYSDBA

方法一:標準 ALTER USER 修改密碼(推薦)

ALTER USER username IDENTIFIED BY new_password;
COMMIT;

適用於所有版本,語法標準、安全、支援密碼驗證函數、Profile 限制。

方法二:修改用戶名稱(進階,需 SYSDBA)

注意:Oracle 無直接 RENAME USER 指令,需直接更新 SYS.USER$ 系統表(風險較高,建議備份後操作)。

-- 1. 查詢目標用戶 USER#
SELECT user#, name FROM user$ WHERE name = 'OLD_NAME';
-- 假設 user# = 66

-- 2. 更新用戶名
UPDATE user$ SET name = 'NEW_NAME' WHERE user# = 66;
COMMIT;

風險提醒:直接修改系統表可能導致相依物件(同義詞、權限、觸發器等)失效,生產環境極不建議。標準做法:建立新用戶 → 匯出/匯入物件 → 刪除舊用戶。

方法三:密碼值直接覆蓋(特殊場景)

-- 查詢當前加密密碼值
SELECT username, password FROM dba_users WHERE username = 'SYSTEM';
-- 例: SYSTEM | D4DF7931AB130E37

-- 修改為新密碼
ALTER USER system IDENTIFIED BY manager;

-- 恢復原密碼(使用加密值)
ALTER USER system IDENTIFIED BY VALUES 'D4DF7931AB130E37';

適用於:臨時變更密碼執行維護,完成後恢復原密碼,避免影響應用程式配置。

帳號鎖定/解鎖與密碼過期

-- 解鎖
ALTER USER username ACCOUNT UNLOCK;
-- 鎖定
ALTER USER username ACCOUNT LOCK;
-- 強制首次登入修改密碼
ALTER USER username PASSWORD EXPIRE;

完整操作範例記錄

SQL> CONNECT sys/oracle AS SYSDBA
SQL> SELECT username, password FROM dba_users;
-- 列出所有用戶加密密碼

SQL> ALTER USER system IDENTIFIED BY manager;
-- 修改密碼
SQL> ALTER USER system ACCOUNT UNLOCK;
-- 解鎖

SQL> SELECT username, password FROM dba_users;
-- 密碼值已變更

SQL> CONNECT system/manager
-- 新密碼登入成功

SQL> ALTER USER system IDENTIFIED BY VALUES '2D594E86F93B17A1';
-- 恢復原密碼值
SQL> CONNECT system/oracle
-- 原密碼登入成功

最佳實務建議

  • 常規密碼修改**務必使用 ALTER USER ... IDENTIFIED BY**
  • 修改用戶名稱採用「建新遷移刪舊」模式,勿直接更新 USER$
  • 密碼複雜度遵循 Profile 設定(PASSWORD_VERIFY_FUNCTION、PASSWORD_LIFE_TIME 等)
  • 重要帳號變更前備份 DBA_USERS 密碼欄位,便於回滾
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved