【问题标题】:SQL Server 2016 TDE Encryption on big text column大文本列上的 SQL Server 2016 TDE 加密
【发布时间】:2020-08-21 05:41:30
【问题描述】:

我们在文本大小较小的列上成功实现了 SQL TDE (SQL 2016),但在大列上会出错

表结构

ID - value
1 - wanted to confirm her order for the install, adv that the activation date was set 
2 - Edward called to have his order processed. Order processed for 20M, leased modem and self install. Due date for the above to be renewed in end of the year
3 - was unable to transfer, no one answered, customer said that they have mpvs' number 
4- Placed order for modems

ALTER TABLE [TextValues]
add    value_encrypt varbinary(max)
go

UPDATE [TextValues]
SET value_encrypt=EncryptByKey (Key_GUID('SymKey_Encryption'), value)
FROM [TextValues];

"ERROR: "字符串或二进制数据将被截断。 声明已终止”。

【问题讨论】:

  • 为什么您认为 TDE 是导致此 T-SQL 错误的原因? TDE 是低级存储加密,不应引入此类错误。添加导致错误的相关 T-SQL 和/或应用程序代码以及表 DDL。
  • @DanGuzman - 添加了我们正在尝试的代码

标签: sql sql-server encryption always-encrypted tde


【解决方案1】:

您的问题与TDE 无关。 TDE 是一种低级存储加密选项,可以透明地加密静态数据(即数据库文件中的数据),而无需更改应用程序代码。

ENCRYPTBYKEY T-SQL 函数以编程方式加密数据。此函数返回 varbinary(8000) 结果。当加密值超过 8000 字节时会出现截断错误,因此不能用于加密大值。

如果您的目标是保护静态数据,则 TDE 是最容易实现的,因为不需要更改代码。可以通过TLS encryption 进一步保护数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-11
    • 1970-01-01
    • 1970-01-01
    • 2015-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-02
    相关资源
    最近更新 更多