Sql server 如何将始终加密的列加密传播到测试、验收和生产中?

Sql server 如何将始终加密的列加密传播到测试、验收和生产中?,sql-server,asp.net-core,always-encrypted,Sql Server,Asp.net Core,Always Encrypted,我们正在.Net核心应用程序中使用 Sql Server数据库通过EF核心迁移进行维护 我想知道如何将选定列的列加密传播到测试、验收和生产中。我找不到这方面的任何信息 如果在迁移中考虑到这一点,那就太好了,因此自动部署将包括新添加的要立即加密的列。据我所知。因此,我不希望在运行迁移和对列启用加密之间花费时间,至少不希望在应用程序上花费时间 密钥名称是否可以重复使用,在每个客户端上使用不同的密钥,并且是否安全?如果是这样,我认为使用migrationBuilder.Sql()可能会对我有所帮助 然

我们正在.Net核心应用程序中使用

Sql Server数据库通过EF核心迁移进行维护

我想知道如何将选定列的列加密传播到测试、验收和生产中。我找不到这方面的任何信息

如果在迁移中考虑到这一点,那就太好了,因此自动部署将包括新添加的要立即加密的列。据我所知。因此,我不希望在运行迁移和对列启用加密之间花费时间,至少不希望在应用程序上花费时间

密钥名称是否可以重复使用,在每个客户端上使用不同的密钥,并且是否安全?如果是这样,我认为使用migrationBuilder.Sql()可能会对我有所帮助

然而,到目前为止,我没有成功

也许,这根本不应该这样做

CREATE TABLE [dbo].Encrypt(
    [id] [int],
    [sensitive] [nvarchar](max)
) 

Alter table Encrypt alter column [sensitive] [nvarchar](max) 
COLLATE Latin1_General_BIN2 
ENCRYPTED WITH (
    COLUMN_ENCRYPTION_KEY = [CEK_Auto1], 
    ENCRYPTION_TYPE = Deterministic, 
    ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256'
)
给出一个错误:

无法更改列“敏感”。该语句尝试使用安全enclave对列进行加密、解密或重新加密,但该列的当前和/或目标列加密密钥未启用enclave。 列和以下一个或多个列属性:排序规则(到其他代码页)、数据类型。这些更改不能合并在一条语句中。尝试使用多个语句

从SQLServerManagementStudio运行时

这里怎么走

如果在运行迁移和运行SQL脚本之间相当于停机时间,那么就这样吧