Sql-Server

為什麼將我的列設置為始終加密會將其排序規則從 SQL_Latin1_General_CP1_CI_AS 更改為 Latin1_General_BIN2?

  • June 25, 2019

我將VARCHAR(50) NULL列加密為隨機的。執行此操作時,排序規則從 更改SQL_Latin1_General_CP1_CI_ASLatin1_General_BIN2

我找不到任何資源來解釋為什麼會發生這種情況,我想了解排序規則更改的目的是什麼。

SQL Server 2017 文件:

具有以下特徵的列不支持 Always Encrypted:

(…)

具有非 bin2 排序規則的字元串(varchar、char 等)列

(…)

來源:始終加密

看起來它在 SQL Server 2019 中正在發生變化:

自最初發布以來,Always Encrypted 對排序規則的使用有一個限制:使用確定性加密加密的字元串列不允許使用非 BIN2 排序規則。此限制也適用於啟用 enclave 的字元串列。

對於使用隨機加密和啟用 enclave 的列加密密鑰加密的字元串列,允許使用非 BIN2 排序規則。但是,為此類列啟用的唯一新功能是就地加密。要啟用豐富的計算(模式匹配、比較操作),您必須確保該列使用 BIN2 排序規則。

使用安全飛地配置 Always Encrypted

引用自:https://dba.stackexchange.com/questions/241378