【问题标题】:Can't modify SQL Server table structure with encrypted column无法使用加密列修改 SQL Server 表结构
【发布时间】:2020-07-02 17:42:04
【问题描述】:

'捐助者 (dbo)' 表

  • 无法修改表。操作数类型冲突:使用 (encryption_type = 'DETERMINISTIC', encryption_algorithm_name = 加密的 nvarchar(11) 'AEAD_AES_256_CBC_HMAC_SHA_256', column_encryption_key_name = '列 加密密钥', column_encryption_key_database_name = 'GODonationsDB') 与 nvarchar 不兼容

我在尝试对 Donors 表的 结构 进行任何修改时收到此错误。我没有修改加密的 SSN 列,但它仍然会发生。我正在尝试更改普通日期字段的数据类型。这个数据库已经存在了一段时间。加密的字段数据类型是 Nvarchar(11),但可能几年后它应该是 varbinary?

【问题讨论】:

  • 触发器?计算列?颞?变更跟踪/变更数据捕获?
  • 另外,您如何“尝试进行任何修改” - 您是否在 SSMS 的网格中加载行(编辑前 n 行)?

标签: sql-server always-encrypted


【解决方案1】:

如果您尝试使用 SSMS 表设计器或图表更改具有始终加密字段的表,则会出现 operand clash 错误。请改用ALTER TABLE ALTER COLUMN 脚本。

添加新列:您只能将新列添加到具有始终加密字段的表的末尾 - 尝试在现有列上方插入新列会导致 operand clash 错误。 (不过,您仍然可以使用表格设计器将新列添加到表格的末尾。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-19
    • 1970-01-01
    • 2017-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-15
    • 2011-06-23
    相关资源
    最近更新 更多