由于SAS的个人登录管理器,到远程服务器的初始连接无需密码(或密码哈希)。但是,似乎有必要指定各个数据库的密码(用户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
。潜在的攻击者现在可以不再使用密码来访问其他帐户,但是当然仍然可以访问任何数据库。
PS:我是SAS的新手,因此SAS documentation像一本书,对我来说有七个印章。我问了许多SAS专家,但对密码哈希的建议不满意。
相关问题和解答:
答案 0 :(得分:2)
我不是SAS Metadata Manager如何管理访问凭据的专家,但是只要“远程” SAS会话也使用Metadata Manager,那么您就应该能够使用它来建立连接。
这是有关您提到的个人登录管理器的博客文章。 https://platformadmin.com/blogs/paul/2010/11/sas-personal-login-manager/
在讨论的最后,有一个示例,说明了如何使用元数据管理器创建libref来提供凭据
从用户角度来看,使用(出站登录)凭据获取 访问第三方系统寻求身份验证域支持 在使用的SAS功能中。例如SAS / ACCESS AUTHDOMAIN = LIBNAME选项。
该页面上的示例:
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";