我想知道是否有办法使用.ppk文件使用SHH隧道连接到SAS中的MySQL数据库。
我可以通过提供.ppk文件使用SQLyog连接到这个MySQL数据库。
我不认为这是一个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;
我是通过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程序让我觉得不好。