SAS, чтобы получить учетные данные (из метаданных) для библиотеки двигателя ODBC может выглядеть следующим образом:
%let libref=MYLIB;
/* get liburi */
data _null_;
length lib_uri $256;
call missing (of _all_);
/* get URI for the particular library */
rc=metadata_getnobj("omsobj:[email protected] ='&libref'",1,lib_uri);
call symputx("liburi",lib_uri,'l');
run;
/* query for credentials */
data _null_;
length connx_uri conprop_uri value datasource up_uri schema $256.;
call missing (of _all_);
/* get source connection ID */
rc=metadata_getnasn("&liburi",'LibraryConnection',1,connx_uri);
/* get connection properties */
i=0;
do until (rc2<0);
i+1;
rc2=metadata_getnasn(connx_uri,'Properties',i,conprop_uri);
rc3=metadata_getattr(conprop_uri,'Name',value);
if value='Connection.ODBC.Property.DATASRC.Name.xmlKey.txt' then do;
rc4=metadata_getattr(conprop_uri,'DefaultValue',datasource);
rc2=-1;
end;
end;
/* get SCHEMA */
rc6=metadata_getnasn("&liburi",'UsingPackages',1,up_uri);
rc7=metadata_getattr(up_uri,'SchemaName',schema);
call symputx('SQL_schema',schema,'l');
call symputx('SQL_dsn',datasource,'l');
run;
libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;
макрос, который будет генерировать Имя_библиотеки заявление для других типов библиотек имеется here.
Итак, каков ваш запрос? «Идентификатор пользователя библиотеки» не имеет смысла. Вы имеете в виду, какие пользователи/группы могут получить доступ к этой библиотеке? –
Нет, я имею в виду учетные данные аутентификации, используемые для доступа к библиотеке. Или даже данные сервера, такие как имя сервера, помогут. Я нашел способ заполнить детали схемы библиотеки. Наряду с этим я хочу также указать имена серверов. – Sakthi
Сведения о сервере можно найти в консоли управления SAS. Щелкните правой кнопкой мыши имя библиотеки и выберите свойства. – Sakthi