首页 > 解决方案 > 如何在 Visual Studio 数据库项目中管理 SQL Server Always Encrypted Keys 架构

问题描述

我有一个 SQL Server 2016 数据库,它使用 Azure Key Vault 的 Always Encrypted 来加密一些列。我想在部署期间用特定于环境的值替换KEY_PATHand属性。ENCRYPTED_VALUE如何在 Visual Studio 数据库项目中进行管理?

CREATE COLUMN MASTER KEY [CMK_Test]
WITH (
     KEY_STORE_PROVIDER_NAME = N'AZURE_KEY_VAULT',
     KEY_PATH = N'[Value]'
);

CREATE COLUMN ENCRYPTION KEY [CEK_TestColumn]
WITH VALUES
(
     COLUMN_MASTER_KEY = [CMK_Test],
     ALGORITHM = N'RSA_OAEP',
     ENCRYPTED_VALUE = [Value]
);

标签: azuresql-server-data-toolsazure-keyvaultalways-encrypted

解决方案


您可以在 KEY_PATH 上使用变量,但不能在 ENCRYPTED_VALUE 上使用

CREATE COLUMN MASTER KEY [CMK_SSO]
WITH (
     KEY_STORE_PROVIDER_NAME = N'AZURE_KEY_VAULT',
     KEY_PATH = N'$(ColumnMasterKey_Path)'
);

在项目属性上声明一个变量。 在此处输入图像描述


推荐阅读