Как вставить данные в зашифрованное поле varbinary из плоского файла с помощью служб SSIS? - PullRequest
2 голосов
/ 20 марта 2019

У меня есть таблица с именем demo с тремя полями.

ID int identity,
Name varbinary(128),
orderdate datetime

В демонстрационной таблице есть поле «Имя», которое зашифровано.

Теперь у меня есть плоский файл с данными типа

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

1 Ответ

2 голосов
/ 20 марта 2019

Самый простой и быстрый способ - использовать промежуточную таблицу, в которой данные хранятся в виде varchar, затем добавить задачу выполнения SQL, которая выполняет шифрование, и вставить данные в таблицу назначения.

Структура промежуточного стола

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 со вторым

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...