2015-11-05 3 views
0

Я пытаюсь подключиться к Oracle DB с моего локального компьютера, и я использую следующую инструкцию libname.SAS/Connect to Oracle с rsubmit

libname liblibb oracle path='galaxy' defer=no 
        connection=globalread readbuff=4000 ; 

это работает ... поскольку он использует окна AD для входа в систему. Однако проблема заключается в том, что я запускаю этот оператор libname с помощью rsubmit (server UNIX).

rsubmit; 
libname liblibb oracle path='galaxy' defer=no 
        connection=globalread readbuff=4000 ; 

endrsubmit; 

Ошибка:

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; 

Есть ли возможный путь для входа в систему Oracle на rsubmit без записи пользователя и пароль подробности в заявлении Имя_библиотеки или по крайней мере как dbprompt для имени пользователя и пароля? или как мы можем заставить UNIX работать с Windows AD в синхронизации с Oracle, поэтому он принимает концепцию единого знака.

+0

Можете ли вы подключиться к Oracle с Unix-машины, используя другие инструменты, такие как sqlplus, без повторного ввода учетных данных? – Tom

+0

@ Тома Я, но я использую SAS. – user3658367

+0

@ user3658367 Я думаю, что Том подойдет, если SQL * Plus может подключаться без пароля, возможно, тот же метод будет работать с SAS. – Joe

ответ

0

Вам необходимо иметь учетные данные в вашем блоке unix для базы данных Oracle, если вы не хотите отправлять пароль в свой rsubmit. Используя rsubmit, db видит версию unix, в которой вы пытаетесь войти в систему, а не версию Windows.

0

Когда вы используете rsubmit, вы передаете инструкцию на удаленный сервер и оператор запускается на удаленном сервере. Поэтому 1. Ваши учетные данные должны быть доступны для постановки на удаленном сервере их удаленный сервер должен иметь доступ к оракулу

В первом случае, когда вы используете Имя_библиотеки заявления на локальной машине ODBC соединение должно быть с uid и пароль, сохраненные в профиле подключения. Поэтому нет необходимости указывать. Во втором случае у вашего профиля нет ваших учетных данных. Поэтому вам необходимо иметь их на удаленном компьютере. Один из подходов состоит в том, чтобы сохранить имя пользователя и пароль в виде макросов и сделать доступными на сервере. Типичный сценарий будет таким: % let dbpw = your_db_passwd; % let usrid = your_user_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; 

это, как я использую его.