2017-10-19 47 views
0

我有一個長時間工作的Windows Forms應用程序,現在我必須加密/解密數據庫中的某些列。我對數據庫進行了所有配置,配置了要加密的列,將列的數據類型從varchar(max)更改爲nvarchar(max),在Windows存儲上創建了證書,爲客戶端導出了證書,現在我正在嘗試在客戶端執行該任務。SQL Server總是在插入時加密排序規則不兼容

我改變Windows窗體應用程序框架4.6,添加Column Encryption Setting=enabled我的連接字符串,更新了.dbml設計師,但我仍然在嘗試插入值時出現以下錯誤:

操作數類型衝突:VARCHAR( (encryption_type ='DETERMINISTIC')加密的varchar(50)不兼容,varchar(50)不兼容(encryption_type ='DETERMINISTIC',encryption_algorithm_name ='AEAD_AES_256_CBC_HMAC_SHA_256',column_encryption_key_name ='CEK_Auto1',column_encryption_key_database_name ='MCM_V2')collat​​ion_name ='Greek_CI_AS' encryption_algorithm_name ='AEAD_AES_256_CBC_HMAC_SHA_256',column_encryption_key_name ='CEK_Auto1',column_encryption_key_dat abase_name = 'MYDB')COLLATION_NAME = 'Greek_BIN2'

我使用LINQ進行查詢

回答

0

你似乎是使用非BIN2排序規則。始終加密當前僅支持BIN2歸類。

official documentation:不支持

總是被加密,用於與下面 特性的列(例如,加密,子句不能在 可以使用CREATE TABLE/ALTER TABLE爲一列,如果有的話的以下 條件適用於列):
...
的字符串(VARCHAR,炭等) 列與非BIN2歸類