2012-04-27 223 views
0

dba_users.Password包含散列密码。更改密码前如何验证旧密码?我对两种方法有粗略的想法:更改密码时验证旧密码

(1)查找oracle正在使用的哈希算法和种子值,然后采用哈希和匹配散列。事实证明,这是非常困难的,因为oracle的散列算法和种子并未公开。

(2)EXECUTE IMMEDIATE'CONNECT'|| p_UserName || '/'|| p_OldPassword。这种方法有什么问题?如何在执行该操作后关闭连接,或者在语句或过程退出后自动关闭连接?在任何情况下,同一用户可以同时多次登录?

回答

2

ALTER USER命令有一个REPLACE关键字,可让您指定旧密码。