Jan 22, 2012

Encode your passwords in SAS using Proc PWENCODE

The PWENCODE SAS procedure enables you to encode passwords that can be used in place of plain-text passwords in SAS programs that access relational database management systems (RDBMSs), SAS/SHARE servers, and SAS Integrated Object Model (IOM) servers (such as the SAS Metadata Server).

PROC PWENCODE IN=’password’ ;
specifies the password to encode. password can have no more than 512 characters. password can contain letters, numerals, spaces, and special characters
specifies a fileref to which the output string is to be written. If the OUT= option is not specified, then the output string is written to the SAS log.
specifies the encoding method to use. Currently, sas001 is the only supported encoding method and is the default if the METHOD= option is omitted.
When a password is encoded with PROC PWENCODE, the output string includes a tag that identifies the string as having been encoded. An example of a tag is {sas001}. The tag indicates the encoding method. SAS servers and SAS/ACCESS engines recognize the tag and decode the string before using it. Encoding a password enables you to write SAS programs without having to specify a password in plain text.
/* ENCODE the password and Write it to the Log*/
proc pwencode in='password';
/* ENCODE the password and Save it to the ClipBoard*/
filename clip clipbrd;
proc pwencode in='password' out=clip; run;
/* ENCODE the password and Save it to the Text file C:\pass.txt */
filename pwfile 'C:\pass.txt';
proc pwencode in='password' out=pwfile; run;
/*Use the New password to connect to RDBMS, FTP or anywhere in SAS*/
/* Here's an FTP Example 
This example creates a file called test.dat in the \remote directory of the unix ftp server for the user ftpuser on the host unixserver:
filename create ftp 'test.dat' cd='~'
         user='ftpuser' pass='{sas001}cGFzc3dvcmQ=' recfm=v;
data _null_;
   file create;
   do i=1 to 10;
      put i=;