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

问题描述

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

使用EF核心迁移来维护sql Server数据库

我想知道如何将所选列的列加密传播到测试,接受和生产。我没有找到任何信息。

如果在迁移过程中得到照顾,那就太好了,因此自动部署将包括添加的列,并立即对其进行加密。据我了解,encrypting existing data is not straighforward。因此,我宁愿没有时间在运行迁移和对列启用加密之间花费时间,至少在应用程序上没有正常运行时间。

密钥名称是否可以重复使用,并且在每个客户端上使用不同的密钥,这样安全吗?如果是这样,我认为使用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'
)

出现错误

无法更改列“敏感”。该语句尝试使用安全的安全区域就地加密,解密或重新加密该列,但是该列的当前和/或目标列加密密钥未启用安全区域。 列和以下一个或多个列属性:排序规则(到另一个代码页),数据类型。此类更改不能合并在单个语句中。尝试使用多个语句。

sql Server Management Studio运行时。

去这里的路是什么?

如果这等于运行迁移和运行sql脚本之间的停机时间,那就这样吧。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...