2016-04-25 84 views
0

您好我正在編寫一個ksh腳本來更改整個環境中的DBA密碼。我提示用戶提供新密碼並將其設置爲$ newPwd變量。問題是,當我將這個變量傳遞給sql查詢時,它顯示了日誌文件中的密碼。在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

ALTER USER斯科特T1ger鑑定;

如何屏蔽$ 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; 
     /

現在,當我打開日誌文件時,它只會顯示下面的錯誤消息或其他錯誤消息。

ERROR位於第1行: ORA-20001:改變用戶命令失敗:ORA-28007:密碼不能被重新使用 ORA-06512:在第8行

0

您需要將其加密到您的日誌文件中。您需要使用一些代碼將其傳遞給pgp或其他加密程序。