0
Sqlサーバー2016で暗号化された列と非暗号化列との結合操作を実行する方法.net framework 4.6.1を使用しています。列暗号化設定=接続文字列で有効になります。Sql 2016常に暗号化 - 暗号化された列と非暗号化列との結合操作?
コード:
cmd = new SqlCommand("select determin.name as name from determin inner join determinjoin on determin.name = determinjoin.name ", con);
エラー:
The data types varchar(20) encrypted with (encryption_type =
'DETERMINISTIC', encryption_algorithm_name =
'AEAD_AES_256_CBC_HMAC_SHA_256', column_encryption_key_name = 'CEK_Auto4',
column_encryption_key_database_name = 'depdb') collation_name =
'Latin1_General_BIN2' and varchar are incompatible in the equal to operator.
この時点で、より深い質問をしてください。例えば、「このデータが暗号化に値するものなら、それはなぜいくつかのテーブルでのみ暗号化され、他のものでは暗号化されないのですか? –
これは必須です。私は、1つのテーブルの暗号化された列と他のテーブルの暗号化されていない列に結合する必要があります。 – Karthikeyan
これは可能ではないと思います。 SQL Serverに格納されている値は暗号化されています。列の暗号化の設定では、データページの基になる値は変更されません。 MSの常に暗号化されたアルゴリズムを使用して、暗号化されていない値をハッシュして、2つの値を結合で一致させる必要があります。 – dfundako