我想知道是否有办法使用.ppk文件使用SHH隧道连接到SAS中的MySQL数据库。
我可以通过提供.ppk文件使用SQLyog连接到这个MySQL数据库。
答案 0 :(得分: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 :(得分: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程序中留下密码不胜枚举。