Всегда зашифрованная база данных - PullRequest
0 голосов
/ 16 ноября 2018

Нам нужно настроить функцию Always Encrypted для всех баз данных. Мы хотели создать общий мастер-ключ Column в базе данных Master, чтобы мы могли связать CMK со всеми базами данных на сервере. Но мы не можем связать CMK, созданный в главной БД, со всеми базами данных. Нам нужно создать индивидуально создать мастер-ключ в каждой базе данных. Есть ли способ создать CMK в главной базе данных и обратиться ко всем базам данных на сервере.

1 Ответ

0 голосов
/ 16 ноября 2018

Главный ключ столбца - это объект для каждой базы данных, т. Е. Его нельзя разделить между базами данных. Однако это не что иное, как метаданные, то есть указатель, в котором хранится фактический ключ (сертификат). С Always Encrypted базы данных не имеют доступа к актуальным ключам шифрования. Они хранятся во внешнем хранилище ключей (хранилище сертификатов Windows, хранилище ключей Azure). Итак, вам нужно скопировать (скопировать) существующий сертификат, зарегистрировав его в остальных базах данных. Просто запишите существующий CMK как CREATE COLUMN MASTER KEY и выполните его в каждой из баз данных:

CREATE COLUMN MASTER KEY [CMK_Auto1]
WITH
(
    KEY_STORE_PROVIDER_NAME = N'MSSQL_CERTIFICATE_STORE',
    KEY_PATH = N'CurrentUser/my/2CC027B4FCA85D4244B528E8CA5F73D1EBB18C69'
)
GO

Это создаст новый CMK в каждой базе данных, но все они будут использовать одинаковый сертификат для шифрования данных. Затем зашифруйте нужные столбцы с помощью существующего CMK, который вы создали с помощью приведенного выше сценария.

...