su - oraclesqlplus /nologCONN sys/password AS SYSDBAALTER USER username IDENTIFIED BY new_password;
COMMIT;
適用於所有版本,語法標準、安全、支援密碼驗證函數、Profile 限制。
注意: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$PASSWORD_VERIFY_FUNCTION、PASSWORD_LIFE_TIME 等)DBA_USERS 密碼欄位,便於回滾