dba_users.Password包含散列密码。更改密码前如何验证旧密码?我对两种方法有了粗略的了解:
(1)找出oracle使用的哈希算法和种子值,然后获取哈希值和匹配哈希值。事实证明这非常困难,因为oracle的哈希算法和种子并不公开。
(2)EXECUTE IMMEDIATE'CONNECT'|| p_UserName || '/'|| p_OldPassword。这种方法有哪些问题?如何在执行此操作后关闭连接,或者在语句或过程退出后自动关闭?在任何情况下,同一个用户可以多次同时登录吗?
答案 0 :(得分:2)
ALTER USER命令有一个REPLACE关键字,可让您指定旧密码。