2012-05-29 40 views
2

我正试图在APEX上实现一个表单,该表单允许用户(在本例中为dba)选择数据库,然后更改其用户名和密码。从APEX更改Oracle数据库密码密码

我能够正确设置输入字段,但我完全失去了如何将其与实际数据库绑定在一起。我假设我将不得不使用数据库链接访问不同的数据库。

这可能吗?

回答

1

我设计,不需要存储过程或升高访问单个用户的解决方案。它有点黑了,但它的作品!

  1. 用户通过常规的APEX表格输入他们的凭证和所需的新密码。

  2. 表单数据使用替换字符串在带有iframe的HTML区域中处理。即:<iframe height='300' width='100%' scrolling="no" src="http://***SERVER***/cgi-bin/chguserpwd.cgi dbname=&DATABASE_NAME.&username=&USERNAME.&oldpwd=&CURR_PASSWORD.&newpwd=&NEW_PASSWORD."></iframe>

  3. CGI脚本做的工作,并通过iframe

    #!/usr/bin/ksh 
    my_input=$QUERY_STRING; 
    dbname=`echo "$QUERY_STRING" |awk '{FS="&"} {print $1}'|awk '{FS="="} {print $2}'` 
    username=`echo "$QUERY_STRING" |awk '{FS="&"} {print $2}'|awk '{FS="="} {print $2}'` 
    oldpwd=`echo "$QUERY_STRING" |awk '{FS="&"} {print $3}'|awk '{FS="="} {print $2}'` 
    newpwd=`echo "$QUERY_STRING" |awk '{FS="&"} {print $4}'|awk '{FS="="} {print $2}'` 
    print "Content-Type: text/html\n\n"; print " Database Name is  $dbname ............ User is $username "; 
    
    cd **dir** 
    ./chguserpwd $dbname $username $oldpwd $newpwd  
    
  4. 返回结果执行从CGI脚本./chguserpwd

    set markup HTML on 
    prompt . 
    alter user &1 identified by &2; 
    prompt Password has been changed 
    
的SQL
2

我不认为你将能够做这样的事情:

alter user [email protected]_database identified by new_password 

您可能需要编写一个接受用户名和密码,并改变用户的密码在远程数据库中的存储过程为你。然后,你可以执行:

begin 
    change_password('xyz','new_password')@remote_database; 
end;