[英]Read SQL encrypted columns in Azure Data Flow
我在 Azure Synapse Analytics 数据库的表中有几个加密列,我想在 Azure 数据流中以解密模式读取这些列。 这怎么可能?
使用以下示例,我能够解密该列并在 SSMS 中读取它:
SELECT
CAST(decryptbykey([Encrypted Number]) as nvarchar(254)) 'Decrypted Number'
FROM ITO.Table1
但我无法在 Azure 数据流中运行相同的查询。 我还没有从 MS 那里找到任何指导。
如果我阅读 Azure 数据流中的加密列,它看起来像:
如果我尝试使用 SP 获取解密数据,则会在“数据预览”选项卡上失败。 在我的数据流设置下方: 错误: 注意:为了加密数据,我按照 MS 的这个文档
为了读取您的加密列,您需要对其进行解密。 由于您遵循 MS 文档,因此您需要执行以下操作:
-- 首先,打开用于解密数据的对称密钥。
打开对称密钥 SSN_Key_01
通过证书 HumanResources037 进行解密;
去
然后你应该解密你的数据,写在这里: https ://docs.microsoft.com/en-us/sql/relational-databases/security/encryption/encrypt-a-column-of-data?view=azure- sqldw-latest#encrypt-with-simple-symmetric-encryption
这是我针对您的用例的方法:我使用 MS 文档中所写的对称密钥加密了一个列。 并使用示例数据作为我在 SQL DB 中的数据。
在 SSMS 中创建一个存储过程,如下所示:
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[open_symmetric_key_and_decrypt_data] AS BEGIN OPEN SYMMETRIC KEY SSN_Key_10 DECRYPTION BY CERTIFICATE CustomerDetails; 选择 EncryptedID,CONVERT(varchar, DecryptByKey(EncryptedID)) 作为decryptedId
来自 SalesLT.Customer END GO
保存存储过程并在 SSMS 中运行它只是为了确保它正常工作
使用存储过程加载数据。
在数据预览选项卡中单击地图漂移(它应该像这样向您打开一个新选项卡),基本上在这里我们将漂移列作为新列映射到我们的数据,以便您可以在其他活动中使用它。 在写入接收器之前不要忘记删除它
现在你可以对你的解密列做任何你想做的事情。
检查这些链接: https ://docs.microsoft.com/en-us/azure/data-factory/concepts-data-flow-schema-drift
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.