0

我正在尝试在 sql-azure 数据库中进行列级加密。当加密成功完成时,我观察到列大小正在被修改;实际上减少了,令人惊讶的是,在其他根本没有加密的表列中。

示例:对“table:A”执行加密,但在“table:B”中,列大小会自动从 nvarchar(500) 减少到 nvarchar(100)。

这是什么原因?

4

1 回答 1

1

您是说列的数据类型(您未加密)从 nvarchar(500) 更改为 nvarchar(100)?这绝对不是预期的行为。请分享加密前后的架构,以及你如何加密你的列。

预期的是在加密的列中存储值所需的大小发生变化。例如,如果 SSN 列存储 11 个字符的字符串 (CHAR(11)),则以下查询将在列加密之前返回 11,在列加密后将返回 65。

从 [Patients] 中选择 DATALENGTH(SSN)

您可以在此处找到有关列加密后列大小如何变化的更多详细信息:https ://docs.microsoft.com/en-us/sql/relational-databases/security/encryption/always-encrypted-cryptography#密文长度

谢谢,

雅库布

于 2017-06-02T00:17:00.177 回答