更改加密列属性的最佳做法是什么

ChengWhyNot

我的 [User] 表中的 [Email] 列使用 Always-Encrypt 加密。

我需要将 [Email] 的长度从 max 限制到 MaxLength(250),我通过在 email 属性上添加MaxLength(250)做到这一点

public class User
{    
    [Key, Required]
    public Guid Id { get; set; }
    [Required, **MaxLength(250)**]
    public string Email { get; set; }
    ...
}

但是当我运行迁移脚本时,出现以下异常:

Operand type clash: nvarchar(max) encrypted with (encryption_type = 'DETERMINISTIC', encryption_algorithm_name = 'AEAD_AES_256_CBC_HMAC_SHA_256', column_encryption_key_name = 'CEK1', column_encryption_key_database_name = 'Identity') is incompatible with nvarchar

迁移脚本是:

DECLARE @var0 nvarchar(128)
SELECT @var0 = name
FROM sys.default_constraints
WHERE parent_object_id = object_id(N'dbo.User')
AND col_name(parent_object_id, parent_column_id) = 'Email';
IF @var0 IS NOT NULL
    EXECUTE('ALTER TABLE [dbo].[User] DROP CONSTRAINT [' + @var0 + ']')
ALTER TABLE [dbo].[User] ALTER COLUMN [Email] [nvarchar](250) NOT NULL
INSERT [dbo].[__MigrationHistory]([MigrationId], [ContextKey], [Model], [ProductVersion])
VALUES (N'201804250659054_12345678', N'Concordya.PWC.Verify.DataAccess.Migrations.Configuration',  0x1F8... , N'6.2.0-61023')

我在数据库中手动运行脚本,同样的错误。

这是否意味着一旦列被加密,更改属性的唯一方法是解密、修改、然后加密?

谢谢,

招架鸟

我在尝试增加 Always EncryptedNVARCHAR的大小时遇到​​了类似的错误问题是ALTER COLUMN语句仍然需要包含加密参数。例如,你可以改变这个——

ALTER TABLE [dbo].[User] ALTER COLUMN [Email] [nvarchar](250) NOT NULL

为此(或您最初将 Always Encrypted 参数设置为)-

ALTER TABLE [dbo].[User] ALTER COLUMN [Email] [nvarchar](250) NOT NULL
ENCRYPTED WITH (
      ENCRYPTION_TYPE = DETERMINISTIC
    , ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256'
    , COLUMN_ENCRYPTION_KEY = [**YOUR KEY**]
) NULL

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

更改活动时的最佳做法是什么?

来自分类Dev

设置图像尺寸的最佳做法是什么?CSS或属性?

来自分类Dev

Bootstrap的最佳做法是什么?

来自分类Dev

修补完整数据列的最佳做法是什么?

来自分类Dev

更改加密的分区UUID

来自分类Dev

IE特定CSS的最佳做法是什么?

来自分类Dev

获得Looper的最佳做法是什么?

来自分类Dev

(在表格中搜索)最佳做法是什么?

来自分类Dev

压缩/加密的最佳做法

来自分类Dev

通过 UI 更改数据库时刷新前端 UI 的最佳做法是什么?

来自分类Dev

MATLAB GUI-访问器方法或属性编辑?最佳做法是什么?

来自分类Dev

更改加密的cakephp脚本的URL段

来自分类Dev

在Laravel迁移中更改列类型的最佳方法是什么?

来自分类Dev

Django中的复选框-最佳做法是什么?

来自分类Dev

Javascript:从函数返回值的最佳方法/做法是什么?

来自分类Dev

比较JavaScript中的值的最佳做法是什么?

来自分类Dev

合并两张地图的最佳做法是什么

来自分类Dev

域名(开发,登台,生产)的最佳做法是什么?

来自分类Dev

应用程序文档的最佳做法是什么?

来自分类Dev

该IF循环应被视为最佳做法是什么?

来自分类Dev

Django模型字段选择的最佳做法是什么?

来自分类Dev

在iOS中清除缓存目录的最佳做法是什么?

来自分类Dev

SQLAlchemy中查找值的最佳做法是什么?

来自分类Dev

在Django中保存机密文件的最佳做法是什么?

来自分类Dev

在GRPC上打开渠道的最佳做法是什么?

来自分类Dev

在Android中执行网络操作的最佳做法是什么?

来自分类Dev

Struts 2和Hibernate-最佳做法是什么?

来自分类Dev

编写li标签时的最佳做法是什么

来自分类Dev

最佳做法是什么?撰写n个项目行

Related 相关文章

  1. 1

    更改活动时的最佳做法是什么?

  2. 2

    设置图像尺寸的最佳做法是什么?CSS或属性?

  3. 3

    Bootstrap的最佳做法是什么?

  4. 4

    修补完整数据列的最佳做法是什么?

  5. 5

    更改加密的分区UUID

  6. 6

    IE特定CSS的最佳做法是什么?

  7. 7

    获得Looper的最佳做法是什么?

  8. 8

    (在表格中搜索)最佳做法是什么?

  9. 9

    压缩/加密的最佳做法

  10. 10

    通过 UI 更改数据库时刷新前端 UI 的最佳做法是什么?

  11. 11

    MATLAB GUI-访问器方法或属性编辑?最佳做法是什么?

  12. 12

    更改加密的cakephp脚本的URL段

  13. 13

    在Laravel迁移中更改列类型的最佳方法是什么?

  14. 14

    Django中的复选框-最佳做法是什么?

  15. 15

    Javascript:从函数返回值的最佳方法/做法是什么?

  16. 16

    比较JavaScript中的值的最佳做法是什么?

  17. 17

    合并两张地图的最佳做法是什么

  18. 18

    域名(开发,登台,生产)的最佳做法是什么?

  19. 19

    应用程序文档的最佳做法是什么?

  20. 20

    该IF循环应被视为最佳做法是什么?

  21. 21

    Django模型字段选择的最佳做法是什么?

  22. 22

    在iOS中清除缓存目录的最佳做法是什么?

  23. 23

    SQLAlchemy中查找值的最佳做法是什么?

  24. 24

    在Django中保存机密文件的最佳做法是什么?

  25. 25

    在GRPC上打开渠道的最佳做法是什么?

  26. 26

    在Android中执行网络操作的最佳做法是什么?

  27. 27

    Struts 2和Hibernate-最佳做法是什么?

  28. 28

    编写li标签时的最佳做法是什么

  29. 29

    最佳做法是什么?撰写n个项目行

热门标签

归档