由于SAS的个人登录管理器,到远程服务器的初始连接无需密码(或密码哈希)即可工作。但是,似乎有必要指定各个数据库的密码(用户xxuser密码xxpwd,参见下面的示例)。
有没有一种方法可以连接到数据库服务器上的不同数据库,而不需要密码(散列)??
/* 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。潜在的攻击者现在不能再使用密码访问其他帐户,但当然仍然可以访问任何数据库。
PS:我是SAS的新手,所以SAS文档看起来就像一本有七个印章的书。我问了各种SAS专家,但我对密码哈希的建议并不满意.
相关问答:
发布于 2019-02-22 14:53:23
我不是SAS元数据管理器如何管理访问凭据的专家,但是只要“远程”SAS会话也使用元数据管理器,那么您就应该能够使用它来建立连接。
这是一个关于你提到的个人登录经理的博客文章。https://platformadmin.com/blogs/paul/2010/11/sas-personal-login-manager/
在讨论结束时,有一个如何使用元数据管理器创建libref以提供凭据的示例。
从用户的角度来看,要使用(出站登录)凭据访问第三方系统,请在所使用的SAS特性中查找身份验证域支持。例如,SAS/ACCESS AUTHDOMAIN= LIBNAME选项。
3.4&docsetId=acreldb&docsetTarget=n0aiq25zc8u8u6n1i81my0a24sd3.htm&locale=en
该页中的示例:
options metauser="metadata-userid" metapass="metadata-password"
metaport=8561 metaprotocol=bridge
metarepository="metadata-repository"
metaserver="server-name";
libname A1 saphana server=mysrv1 port=30015 authodomain="hanaauth";https://stackoverflow.com/questions/54829120
复制相似问题