SAS中的数据库连接使用ssh隧道

问题描述 投票:1回答:2

我想知道是否有办法使用.ppk文件使用SHH隧道连接到SAS中的MySQL数据库。

我可以通过提供.ppk文件使用SQLyog连接到这个MySQL数据库。

sql ssh odbc sas
2个回答
1
投票

我不认为这是一个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;

1
投票

我是通过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程序让我觉得不好。

© www.soinside.com 2019 - 2024. All rights reserved.