在Azure Data Factory的 SSIS包中,使用密钥对连接到Snowflake

编程语言 2026-07-09

由于一些不可避免的遗留解决方案,我们在Azure Data Factory中运行着若干SSIS包。这些包通过服务账户连接Snowflake,我们现在将这些服务账户改为需要密钥对认证。我们正设法让SSIS包连接Snowflake的连接字符串包含密钥对认证,我们已经通过将p8文件存放在Blob存储中并在连接字符串中引用该文件来实现这一点。

这并不理想,因为p8文件就这样放在Blob存储中,我们在寻找另一种实现方式。网上似乎建议可以通过在连接字符串中使用PRIVATE_KEY参数,将私钥就地内联来实现,但这似乎要求私钥在密钥库中是未加密的,且不能使用通常附带的密码短语。这看起来并没有太大改进。不过我不确定那是不是Copilot在胡乱给出的答案。

我们使用的是Snowflake ODBC 3.4.1,版本足以使用PRIVATE_KEY参数,但是不是只有在私钥未加密且不需要密码短语时,才能在连接字符串中使用该参数?

有没有人尝试过,并有任何指导?

解决方案

使用基于文件的密钥,而不是内联密钥。

PRIVATE_KEY = plain (decrypted) key

Encrypted .p8 requires:

AUTHENTICATOR=SNOWFLAKE_JWT;
PRIV_KEY_FILE=<path>;
PRIV_KEY_FILE_PWD=<passphrase>;
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章