如何从Azure数据工厂中的Key Vault获取/设置参数化的连接字符串?

时间:2019-08-09 17:52:20

标签: azure azure-data-factory azure-keyvault azure-data-factory-2

我在Azure数据工厂链接服务中有一个参数化的连接字符串,如下所示:

  

集成   安全性= False;加密= True;连接超时= 30;数据   来源= xyz;用户ID = admin;密码=密码;初始   Catalog == @ {linkedService()。LSDBName} ;

在运行时从管道变量传递数据库的值。

我想将此连接字符串保存到Azure Key Vault,但是问题是从密钥库读取值后,链接的服务参数“ LSDBName”不会动态替换为实际值,而是尝试连接作为“ @ {linkedService()。LSDBName}”作为数据库名称。

是否有办法保护密钥库中动态参数化的连接字符串?或解决此问题的解决方法?

谢谢!

2 个答案:

答案 0 :(得分:1)

如果要将整个连接字符串存储在密钥库中,则必须在“ Server = myServerAddress; Database = myDataBase; User Id = myUsername; Password = myPassword;”中传递连接字符串。格式。为每个数据库创建单独的连接字符串,并将其存储在具有不同机密的密钥保管库中,然后在ADF中创建参数化的链接服务,并以这些机密为参数。

答案 1 :(得分:0)

我的想法是使用“设置变量活动+天蓝色函数活动”。

第一步是使用“设置变量活动”来获取LinkedService连接字符串。

第二步将变量作为参数传递给Azure Function活动。然后使用AKV sdk将连接字符串值存储在内部的azure函数中。

顺便说一句,我认为您的连接字符串已被参数化,避免了安全问题。您不必再次将其存储到AKV中,因为大多数情况下,我们从AKV中读取私人信息,而不是将存储信息写入ADF中的AKV中。只是我个人的看法。

enter image description here