Шифрование существующего столбца (всегда зашифрованного) с использованием скрипта - PullRequest
0 голосов
/ 10 января 2019

Мне нужно зашифровать столбец имени с помощью «Always Encrypted» (детерминированный), используя ключ шифрования столбца «MyCEK».

Я не хочу делать это с помощью мастера, но мне нужно написать скрипт для него, который я мог бы запускать на нескольких серверах (для разных сред, таких как DEV, TEST, PROD).

У меня уже есть скрипт для создания ключа.

ALTER TABLE MyTable
ALTER COLUMN [Name] [varchar](200) COLLATE Latin1_General_BIN2 ENCRYPTED WITH (COLUMN_ENCRYPTION_KEY = [MyCEK], ENCRYPTION_TYPE = Deterministic, ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256') NULL

Просто хотел узнать, смогу ли я изменить таблицу, используя что-то вроде этого выдает ошибку:

Столкновение с типом операнда: nvarchar (max), зашифрованный с помощью (encryption_type = 'DETERMINISTIC', encryption_algorithm_name = 'AEAD_AES_256_CBC_HMAC_SHA_256', column_encryption_key_name = TwoValueCE, column_encryption_key_database_name = 'EmpData2') несовместим с varchar (200), зашифрованным с помощью (encryption_type = DETERMINISTIC, encryption_algorithm_name = 'AEAD_AES_256_CBC_HMAC_SHA_256', column_encryption_key_name = 'TwoValueCE', column_encryption_key_database_name = 'EmpData2') collation_name = 'Latin1_General_BIN2'

1 Ответ

0 голосов
/ 05 февраля 2019

Посмотрите, можете ли вы DROP и CREATE ТАБЛИЦА, я без проблем запускаю сценарии для создания новых таблиц с зашифрованными столбцами, например,

CREATE TABLE [dbo].[Table1](
[ScannedInput] [varchar](50) COLLATE Latin1_General_BIN2 ENCRYPTED WITH 
(COLUMN_ENCRYPTION_KEY = [CEK_Auto2], ENCRYPTION_TYPE = Deterministic, ALGORITHM 
= 'AEAD_AES_256_CBC_HMAC_SHA_256') NULL,
...