Sql-Server
為什麼將我的列設置為始終加密會將其排序規則從 SQL_Latin1_General_CP1_CI_AS 更改為 Latin1_General_BIN2?
我將
VARCHAR(50) NULL
列加密為隨機的。執行此操作時,排序規則從 更改SQL_Latin1_General_CP1_CI_AS
為Latin1_General_BIN2
。我找不到任何資源來解釋為什麼會發生這種情況,我想了解排序規則更改的目的是什麼。
SQL Server 2017 文件:
具有以下特徵的列不支持 Always Encrypted:
(…)
具有非 bin2 排序規則的字元串(varchar、char 等)列
(…)
來源:始終加密
看起來它在 SQL Server 2019 中正在發生變化:
自最初發布以來,Always Encrypted 對排序規則的使用有一個限制:使用確定性加密加密的字元串列不允許使用非 BIN2 排序規則。此限制也適用於啟用 enclave 的字元串列。
對於使用隨機加密和啟用 enclave 的列加密密鑰加密的字元串列,允許使用非 BIN2 排序規則。但是,為此類列啟用的唯一新功能是就地加密。要啟用豐富的計算(模式匹配、比較操作),您必須確保該列使用 BIN2 排序規則。