如何使用 SSIS 从平面文件中将数据插入到加密的 varbinary 字段中?
How to insert data in encrypted varbinary field from flat file using SSIS?
我有一个名为 demo 的 table,其中包含三个字段。
ID int identity,
Name varbinary(128),
orderdate datetime
Demo table 的字段 'Name' 已加密。
现在我有一个平面文件,其中包含类似
的数据
1,John,2016-01-01
我将如何在 SSIS 中实现这一点?
在TSQL中,我可以这样输入数据
OPEN SYMMETRIC KEY STORE_CRYPT
DECRYPTION BY ASYMMETRIC KEY STORE_CRYPT_ASYM
INSERT INTO dbo.Demo (Name,OrderDate)
SELECT ENCRYPTBYKEY(KEY_GUID('STORE_CRYPT'),'John'),GETDATE()
CLOSE SYMMETRIC KEY STORE_CRYPT
最简单和最快的方法是使用暂存 table,其中数据存储为 varchar,然后添加执行 SQL 执行加密并将数据插入目标的任务 table.
分期table结构
ID int identity,
Name varchar(255),
orderdate datetime
执行SQL任务命令
OPEN SYMMETRIC KEY STORE_CRYPT
DECRYPTION BY ASYMMETRIC KEY STORE_CRYPT_ASYM
INSERT INTO dbo.Demo (Name,OrderDate)
SELECT ENCRYPTBYKEY(KEY_GUID('STORE_CRYPT'),Name),OrderDate
FROM StagingTable
CLOSE SYMMETRIC KEY STORE_CRYPT
其他可能的解决方案 (不确定是否可行)
尝试使用 OLEDB 命令转换而不是 OLEDB 目标并使用以下命令:(请注意,从性能角度来看,不建议使用 OLEDB 命令)
OPEN SYMMETRIC KEY STORE_CRYPT
DECRYPTION BY ASYMMETRIC KEY STORE_CRYPT_ASYM
INSERT INTO dbo.Demo (Name,OrderDate)
SELECT ENCRYPTBYKEY(KEY_GUID('STORE_CRYPT'),?),?
CLOSE SYMMETRIC KEY STORE_CRYPT
并将 Name
列映射到第一个参数,将 Orderdate
映射到第二个
我有一个名为 demo 的 table,其中包含三个字段。
ID int identity,
Name varbinary(128),
orderdate datetime
Demo table 的字段 'Name' 已加密。
现在我有一个平面文件,其中包含类似
的数据1,John,2016-01-01
我将如何在 SSIS 中实现这一点?
在TSQL中,我可以这样输入数据
OPEN SYMMETRIC KEY STORE_CRYPT
DECRYPTION BY ASYMMETRIC KEY STORE_CRYPT_ASYM
INSERT INTO dbo.Demo (Name,OrderDate)
SELECT ENCRYPTBYKEY(KEY_GUID('STORE_CRYPT'),'John'),GETDATE()
CLOSE SYMMETRIC KEY STORE_CRYPT
最简单和最快的方法是使用暂存 table,其中数据存储为 varchar,然后添加执行 SQL 执行加密并将数据插入目标的任务 table.
分期table结构
ID int identity,
Name varchar(255),
orderdate datetime
执行SQL任务命令
OPEN SYMMETRIC KEY STORE_CRYPT
DECRYPTION BY ASYMMETRIC KEY STORE_CRYPT_ASYM
INSERT INTO dbo.Demo (Name,OrderDate)
SELECT ENCRYPTBYKEY(KEY_GUID('STORE_CRYPT'),Name),OrderDate
FROM StagingTable
CLOSE SYMMETRIC KEY STORE_CRYPT
其他可能的解决方案 (不确定是否可行)
尝试使用 OLEDB 命令转换而不是 OLEDB 目标并使用以下命令:(请注意,从性能角度来看,不建议使用 OLEDB 命令)
OPEN SYMMETRIC KEY STORE_CRYPT
DECRYPTION BY ASYMMETRIC KEY STORE_CRYPT_ASYM
INSERT INTO dbo.Demo (Name,OrderDate)
SELECT ENCRYPTBYKEY(KEY_GUID('STORE_CRYPT'),?),?
CLOSE SYMMETRIC KEY STORE_CRYPT
并将 Name
列映射到第一个参数,将 Orderdate
映射到第二个