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

Oracle 使用者密碼管理:解鎖、變更與還原密碼實作

     編輯:Oracle 資料庫基礎

適用情境

  • 使用者帳號被鎖定(ORA-28000)。
  • 需以特定使用者身分執行作業,但原密碼未知;可暫時變更密碼,事後還原。
  • 需具備 SYSDBA 或 ALTER USER 系統權限。

完整操作流程示範(以 SCOTT 為例)

1. 以 SYSDBA 登入並解鎖帳號

SQL> CONN / AS SYSDBA
已連線。
SQL> ALTER USER scott ACCOUNT UNLOCK;
使用者已變更。

2. 查詢當前密碼雜湊值(備份用)

SQL> SELECT username, password FROM dba_users WHERE username = 'SCOTT';
USERNAME  PASSWORD
--------  ------------------------------
SCOTT     F894844C34402B67

記錄此雜湊值,稍後還原密碼時使用。

3. 變更為已知密碼

SQL> ALTER USER scott IDENTIFIED BY ghghgh;
使用者已變更。

4. 驗證新密碼可登入

SQL> CONN scott/ghghgh
已連線。

5. 還原原始密碼雜湊值

SQL> CONN / AS SYSDBA
已連線。
SQL> ALTER USER scott IDENTIFIED BY VALUES 'F894844C34402B67';
使用者已變更。

6. 驗證還原結果

SQL> CONN scott/ghghgh
ERROR: ORA-01017: invalid username/password; logon denied

SQL> CONN scott/tiger
已連線。  -- 原密碼 tiger 恢復生效

關鍵語法差異

語法用途密碼形式
ALTER USER u IDENTIFIED BY pwd 設定新密碼(明文) 明文密碼
ALTER USER u IDENTIFIED BY VALUES 'hash' 直接設定密碼雜湊值(還原/遷移) 加密雜湊字串

注意事項

  • IDENTIFIED BY VALUES 僅限 SYS/SYSDBA 使用,一般使用者無法執行。
  • Oracle 11g 起預設啟用大小寫敏感密碼(SEC_CASE_SENSITIVE_LOGON),雜湊值包含大小寫資訊。
  • 生產環境操作前請確認變更影響範圍,建議在維護窗口執行並留存審計日誌。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved