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」として処理されます。
ログ等、いくら探しても、実行者はパスワードを知ることはできません。