1

ユーザーが選択した関連データベースのパスワードを変更できるようにするWebポータル(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;

ありがとう!

4

2 に答える 2

2

標準的なアプローチは、任意のパスワードを変更できる特権の高いユーザーがプロシージャを所有し、実行できるはずのユーザーにプロシージャの実行を許可し、セキュリティ制限を実装するためのロジックをプロシージャに配置することです。

于 2012-06-06T15:02:29.523 に答える
0

主な問題は、ユーザーのパスワードを変更する前に認証することだと思います。ただし、これを行うための安全な方法はないと思います。パスワードを確認する最良の方法は、コメントのように、パスワードを使用してデータベースにログインすることです。これには、パスワードを外部スクリプトに渡す必要がありますが、システムにアクセスできるすべての人にプレーンテキストのパスワードが表示されます。

もう1つの方法は、人々がOracleのパスワードハッシュアルゴリズムを複製するために使用したアルゴリズムを使用することですが、これは効果的に一緒にハッキングされ、変更される可能性があります:http: //www.petefinnigan.com/weblog/archives/00001097.htm

于 2012-06-06T16:21:23.957 に答える