プログラム内に記述するパスワードの秘匿化

[OS] ALL
[リリース] 9.1以降
[キーワード] Base, ACCESS, password, hide, encoding

[質問]

RDBMSやSAS Server(SAS Metadata Serverなど)にアクセスするSASプログラムを作成する際、 パスワードをそのまま目で確認できる状態(平文:プレーンテキスト形式)で記述しない方法はありますか?

[回答]

SAS9.1から新たに提供されたPWENCODEプロシジャを使用すると、 パスワードをSASだけが解釈できる形式に変換できます。 また、OUT=オプションにファイル参照名を指定することで、 変換されたパスワードが保存されたテキストファイルを作成することもできます。


                           /* パスワードの変換 */
   PROC PWENCODE IN="mypass";
   RUN;

上記のサンプルプログラムを実行すると、ログウィンドウに下記のログが出力されます。


   1 PROC PWENCODE IN="mypass";
   2 RUN;

   {sas001}bXlwYXNz

   NOTE: PROCEDURE PWENCODE 処理 (合計処理時間):
         処理時間 0.00 秒
         CPU 時間 0.01 秒

以下は、上記サンプルプログラムで変換されたパスワードを使って、ORACLEデータベースに接続する例です。


                             /** ORACLEデータベースへの接続 **/
   LIBNAME oralib oracle user=demo password="{sas001}bXlwYXNz";

ログウィンドウでは、パスワードが「XXXX・・・・」と表示されます。


   3 LIBNAME oralib oracle user=demo password=XXXXXXXXXXXXXXXXXX;
   NOTE: ライブラリ参照名 ORALIB を次のように割り当てました。
         エンジン : ORACLE
         物理名 :