执行列级加密后重新调整大小的列(始终加密)

问题描述:

我正在尝试在sql-azure数据库中执行列级加密。当加密成功完成时,我观察到列大小正在被修改;实际上在其他没有加密的表格列中令人惊讶地减少了。例如:在“table:A”上执行加密,但在“table:B”中,列大小从nvarchar(500)自动减少到nvarchar(100)。执行列级加密后重新调整大小的列(始终加密)

这是什么原因?

你是说你的列没有加密的数据类型从nvarchar(500)变成nvarchar(100)?这绝对不是预期的行为。请在加密之前和之后共享模式,以及如何加密您的列。

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

SELECT DATALENGTH从[例](SSN)

您可以找到如何的后列一列的大小发生变化,这里加密的详细信息:https://docs.microsoft.com/en-us/sql/relational-databases/security/encryption/always-encrypted-cryptography#ciphertext-length

感谢,

的Jakub