データセットにパスワードをかける話とPWENCODEプロシジャで、コード内に直接パスワードを記載しなくてもよくする話

data Q1(pw=SASYAMA) ;
 X=1;
run;

とすると、データセットQ1に「SASYAMA」というパスワードを書けることができます。

このデータセットを更新・削除・その他操作しようとすると

data A0;
 set Q1;
run;







で、ここでSASYAMAって打てば、処理が実行されます。


で、いちいち手で入力しなくても

data A1;
 set Q1(pw=SASYAMA);
run;

とすればOKです。

でも、人にあげるプログラムで、その人にパスワードに「SASYAMA」って値を使っているって
しられたくない場合、つまり、ようするにコードの中に直接パスワードの文字を記述したくない
場合にどうするかという話です。

まず、あげるプログラム以外のエディタで
proc pwencode in="SASYAMA";
run;

と、パスワードをin=で指定して実行します。

するとログに











謎の文字列が出現します。

実は、これが暗号化された「SASYAMA」です。

なので

人に渡すプログラムは

data A2;
 set Q1(pw="{sas002}BCED1140421B96950FEE34A400661C44");
run;

とすればSASの内部で、実行する際に{sas002}BCED1140421B96950FEE34A400661C44が
復号されて「SASYAMA」として処理されます。
ログ等、いくら探しても、実行者はパスワードを知ることはできません。





0 件のコメント:

コメントを投稿