身份插入到 SSIS ADO.NET 始终加密目标

时间:2021-02-03 02:41:27

标签: ssis ado.net

我正在尝试将一个纯文本表复制到另一个具有相同列数的表,但某些列是使用 SQL Server 始终加密技术加密的。

简而言之,这就是我正在做的:

example architecture

在连接管理器上,我设置了 retainsameconnection=trueMultipleActiveResultset=trueColmnEncryptionsetting 已启用。 在 ADO.NET 目标上,我设置了 UseBulkInsertWhenPossible=false

当我使用此设置运行 pacakge 时,出现加密列错误:

<块引用>

[ADO NET Destination [2]] 错误:数据插入过程中发生异常,从提供者返回的消息是:操作数类型冲突:nvarchar(4000) encrypted with (encryption_type = 'DETERMINISTIC', encryption_algorithm_name = 'AEAD_AES_256_CBC_HMAC_SHA_256 ', column_encryption_key_name = 'QC_AE_CEK_1', column_encryption_key_database_name = 'MyDBNAME') 与 nvarchar(1000) 不兼容 (encryption_type = 'DETERMINISTIC', encryption_algorithm_name = 'AEAD_AES_256_CREK_10000000000000000000000000) 加密_algorithm_name = 'AEAD_AES_256_CREK_256_CASE_key_database_加密列_AEAD_AES_256_Cname_key_database_加密列_AEAD_AES_256_CASE_name_key_database_加密列_AEAD_AES_256_C_key_database_密 无法准备报表。

如果我禁用 usebulkisertwhenpossible,并保留 retainsameconnection=true,我会收到此错误:

<块引用>

[ADO NET Destination [2]] 错误:数据插入期间发生异常,从提供程序返回的消息是:当 IDENTITY_INSERT 设置为 ON 或时,必须为表 'MyTableName' 中的标识列指定显式值当复制用户插入 NOT FOR REPLICATION 标识列时。

如果我将 retainsameconnectionusebulkinsert 都设置为 false,插入会通过,但我无法在此处插入标识列。它只是忽略 Identity Insert ON 并向标识列插入新值。

如何将未加密的表复制到保留标识列值的始终加密模式?

0 个答案:

没有答案