Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SAS/通过rsubmit连接到Oracle_Oracle_Sas - Fatal编程技术网

SAS/通过rsubmit连接到Oracle

SAS/通过rsubmit连接到Oracle,oracle,sas,Oracle,Sas,我正在尝试从本地计算机连接到Oracle DB,我使用以下libname语句 libname liblibb oracle path='galaxy' defer=no connection=globalread readbuff=4000 ; 这很有效。。。因为它使用windows广告详细信息登录。 但是,问题是当我使用rsubmit(server UNIX)运行这个libname语句时 错误: ORA-01017 Invalid Username/Pas

我正在尝试从本地计算机连接到Oracle DB,我使用以下libname语句

libname liblibb oracle path='galaxy' defer=no
                  connection=globalread readbuff=4000 ;
这很有效。。。因为它使用windows广告详细信息登录。 但是,问题是当我使用rsubmit(server UNIX)运行这个libname语句时

错误:

ORA-01017 Invalid Username/Password
Error in the LIBNAME statement
但是当我使用用户名和密码时,它就工作了

rsubmit;
libname liblibb oracle path='galaxy' user=xxxx password='xxxx'       
defer=no
                  connection=globalread readbuff=4000 ;
endrsubmit; 

是否有任何可能的方法可以在rsubmit上登录到Oracle,而无需在libname语句中写入用户和密码详细信息,或者至少像dbprompt一样输入用户名和密码?或者,我们如何使UNIX与windows AD同步工作,使其与Oracle同步,从而采用单点登录的概念

如果不想在rsubmit中提交密码,则需要在unix设备上为Oracle数据库提供凭据。通过使用rsubmit,数据库可以看到您尝试登录的unix版本,而不是windows版本

使用rsubmit时,将语句传递到远程服务器,并且该语句在远程服务器上运行。所以 1.您的凭据应可用于远程服务器上的语句 2.您的远程服务器应该可以访问oracle

在第一种情况下,在本地计算机上使用libname语句时,odbc连接必须在连接配置文件中保存uid和密码。因此无需具体说明。 在第二种情况下,配置文件没有保存您的凭据。因此,您需要在远程计算机上提供这些凭据。 一种方法是将用户名和密码保存为宏并在服务器上可用。 典型的情况是这样的 %让dbpw=your_db_passwd; %让usrid=您的用户id; 这些可以放在您觉得安全的任何地方,可以在登录脚本中,也可以放在本地计算机上程序之外的任何地方。使用%Include语句包含此内容

%include passwd_file.sas;
现在,让它们在远程计算机上可用

%syslput dpw=&dbpw;
%syslput userid=&userid;
rsubmit;
libname liblibb oracle path='galaxy' user=&userid password="&dbpw"       
defer=no
                  connection=globalread readbuff=4000 ;
your_program_statements_here;
endrsubmit; 

这就是我使用它的方式。

您能使用其他工具(如sqlplus)从Unix计算机连接到Oracle而不必重新键入您的凭据吗?@Tom Ya,但我使用的是SAS。@user3658367如果SQL*Plus可以无需密码连接,我想Tom的意思是,也许同样的方法也适用于SAS。@user3658367您如何连接到您的unix计算机?您使用的是生成程序还是telnet脚本?有关这些方法的比较,请参阅。
%syslput dpw=&dbpw;
%syslput userid=&userid;
rsubmit;
libname liblibb oracle path='galaxy' user=&userid password="&dbpw"       
defer=no
                  connection=globalread readbuff=4000 ;
your_program_statements_here;
endrsubmit;