2016-04-25 10 views
0

こんにちは私はkshスクリプトを作成して、環境全体のDBAパスワードを変更しています。新しいパスワードを入力して$ newPwd変数に設定するように促しています。問題は、この変数をSQLクエリに渡すと、ログファイルにパスワードが表示されることです。 T1gerで識別kshスクリプトのsqlクエリに渡されるマスク変数

sqlplus sys/[email protected]<<EOf>dba_password_change_log.log 
Alter user $dba_user identified by $newPwd; 
quit; 
EOF 

$猫dba_password_change_log.log

アルターユーザーSCOTT;

$ newPwd変数をマスクするにはどうすればよいですか?

答えて

0

別の方法が見つかりました。代わりにplsqlプロシージャを使用しました。

declare 
      emesg varchar2(32000); 
     begin 
      dbms_output.put_line('alter user ${dba_user} identified by *******'); 
      execute immediate 'alter user ${dba_user} identified by "${newPwd}"'; 
      exception when others then 
      emesg := SQLERRM; 
      raise_application_error(-20001, 'alter user ${dba_user} command failed: '|| emesg); 
     end; 
     /

ログファイルを開くと、以下のエラーメッセージまたはその他のエラーメッセージのみが表示されます。 1行目で

ERROR: ORA-20001:ユーザーコマンドを変更する失敗しました:ORA-28007:パスワードは ORA-06512を再利用することはできません:行8

0

ログファイルに暗号化する必要があります。それをpgpやその他の暗号化プログラムに渡すには、いくつかのコードを使用する必要があります。

関連する問題