Благодаря SAS Personal Login Manager , первоначальное подключение к удаленному серверу работает без пароля (или хэша пароля).Однако представляется необходимым указать пароли отдельных баз данных (пользователь xxuser
пароль xxpwd
, см. Пример ниже).
Существует ли способ подключения к различным базам данных в базе данных?сервер без пароля (хеш) в коде SAS?
/* Connect to database server works without password
thanks to SAS's Personal Login Manager */
%dosignon(srvcomponent=xxxremoteSAS);
/* SQL direct pass-through to server */
rsubmit;
/* Define SAS-libraries (on server) */
libname remote_db_a db2 dsn=dbxa schema=xxschema1 user=xxuser password= "xxpwd";
libname remote_db_b db2 dsn=dbxa schema=xxschema2 user=xxuser password= "xxpwd";
endrsubmit;
/* Link local library names with the ones the server */
libname remote_db_a a libref=remote_db_a server=&sessid.;
libname remote_db_b a libref=remote_db_b server=&sessid.;
Обходной путь - закодировать строку пароля с помощью proc pwencode in="plaintextPassword"; run;
и использовать этот хеш вместо xxpwd
в soruceкод.Потенциальный злоумышленник больше не может использовать пароль для доступа к другим учетным записям, но, конечно, может получить доступ к любой базе данных.
PS: Я новичок в SAS, поэтому документация SAS выглядит для меня как книга с семью печатями.Я задавал вопросы различным экспертам SAS, но меня не устраивает предложение хэширования пароля.
Вопросы и ответы по теме: