我正在尝试为门户网站(APEX)编写一个脚本,允许用户在他们选择的关联数据库上更改密码
我正在尝试编写一个pl / sql过程,我可以通过数据库链接执行该过程来更改该数据库上的密码。
我想我要问的是我可以作为PL / SQL块中的其他用户连接并从该块中运行alter user identified by
吗?
CREATE OR REPLACE PROCEDURE CHPWD
(
Database IN VARCHAR2
, Username IN VARCHAR2
, old_pw IN VARCHAR2
, new_pw IN VARCHAR2
) AS
BEGIN
/* Something like conn Username/old_pw here
then
alter username identified by new_pw */
END CHPWD;
谢谢!
答案 0 :(得分:2)
标准方法是让高权限用户拥有该过程,该用户可以更改任何密码,将过程执行授予应该能够执行它的用户,并在过程中放置逻辑以实现安全性限制
答案 1 :(得分:0)
我认为主要问题是在更改用户密码之前对其进行身份验证。我不认为有一种安全的方法可以做到这一点 - 确认密码的最佳方法是在评论中使用它登录数据库。这需要将密码传递给外部脚本,但这会向有权访问系统的任何人显示您的纯文本密码。
另一种方法是采用人们用来复制Oracle密码哈希算法的算法 - 但这有效地被黑客攻击并且容易被更改: http://www.petefinnigan.com/weblog/archives/00001097.htm