2012-04-27 254 views
0

dba_users.Password包含散列密碼。更改密碼前如何驗證舊密碼?我對兩種方法有粗略的想法:更改密碼時驗證舊密碼

(1)查找oracle正在使用的哈希算法和種子值,然後採用哈希和匹配散列。事實證明,這是非常困難的,因爲oracle的散列算法和種子並未公開。

(2)EXECUTE IMMEDIATE'CONNECT'|| p_UserName || '/'|| p_OldPassword。這種方法有什麼問題?如何在執行該操作後關閉連接,或者在語句或過程退出後自動關閉連接?在任何情況下,同一用戶可以同時多次登錄?

回答

2

ALTER USER命令有一個REPLACE關鍵字,可讓您指定舊密碼。