SAS传递语句中的无密码身份验证?

时间:2019-02-22 14:21:14

标签: authentication sas sas-macro

由于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专家,但对密码哈希的建议不满意。

相关问题和解答:

1 个答案:

答案 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选项。

https://documentation.sas.com/?cdcId=pgmsascdc&cdcVersion=9.4_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";