Подключение к базе данных в SAS с использованием SSH туннелирования - PullRequest
1 голос
/ 02 февраля 2012

Я хочу знать, есть ли способ подключения к базе данных MySQL в SAS с использованием туннелирования SHH с использованием файла .ppk.

Я могу подключиться к этой базе данных MySQL, используя SQLyog, предоставив файл .ppk.

Ответы [ 2 ]

1 голос
/ 14 марта 2019

Я добился этого через plink (из пакета PuTTy). В моем примере я подключаюсь к удаленному серверу, но он также будет работать для localhost без переадресации.

Сначала настройте источник данных ODBC (32- или 64-разрядный), как обычно, - скажем, вы назвали его DB_SOURCE, с соответствующим драйвером, указав 127.0.0.1 или localhost в качестве сервера, и номер локального порта (LOCAL_PORT). ) Во-вторых, используйте команду x (после настройки параметров):

options noxwait NOXSYNC;
data _null_; /* set up tunnel to remote db */
    x '"C:\Program Files\PuTTY\plink.exe" REMOTE_IP -P 22 -T -l USER_NAME -i c:\users\LOCAL_USER_NAME\.ssh\PRIVATE_KEY_FILE_NAME.ppk -L 127.0.0.1:LOCAL_PORT:REMOTE_IP:REMOTE_PORT';
run;

Тогда делай свою обычную работу. Например:

libname LIBNAME ODBC datasrc=DB_SOURCE qualifier=DB_TO_USE; 

Файл ключа. Похоже, лучше всего оставлять пароль в виде простого текста. Программа SAS показалась мне не очень хорошей.

1 голос
/ 02 февраля 2012

Не думаю, что это вопрос SAS, а скорее вопрос ODBC.Ответ - да, вы должны быть в состоянии, но вам нужно указать это в настройках подключения ODBC.

Я предполагаю, что вы используете Windows, так как вы используете SQLYog.

Перейти к панели управления-> Администрирование-> Источники данных ODBC.

Если вы уже настроили соединение ODBC, найдите его и отредактируйте свойства.На одной из вкладок конфигурации будет возможность ввести файл «Ключ SSL».

Если здесь вы еще не настроили соединение ODBC, создайте новое, используя установленный драйвер MySQL ODBC.,Обязательно настройте файл ключей SSL, как я уже говорил выше.В SAS вы можете подключиться к базе данных, выполнив что-то вроде следующего:

proc sql noprint;
  connect to odbc (datasrc=mysql_dsn user=me password=mypwd);
  create table tmp as 
  select * 
  from connection to odbc 
  (  
  select * from olp.application limit 1   /* THIS IS YOUR MYSQL QUERY */
  )  
  ;
quit;
...