SQL-verschlüsselte Spalten in WHERE-Klausel

Ich möchte die SQL-Verschlüsselung auf Spaltenebene mit symmetrischen Schlüsseln anwenden. Die ersten Schritte zum Erstellen des Datenbank-Hauptschlüssels, der Zertifikate und der symmetrischen Schlüssel scheinen einfach zu sein, und ich habe das Ver- / Entschlüsseln von Daten mit symmetrischen Schlüsseln erfolgreich getestet.

Sobald die Daten verschlüsselt sind, weiß ich nicht, wie ich sie am besten abfragen soll. Z.B

SELECT PlainTextA, PlainTextB, PlainTextC 
WHERE CONVERT(varchar, DECRYPTBYKEY(EncyptedColumn)) = @SearchTerm

ürde dies sicherlich zu einem vollständigen Tabellenscan führe

Eine andere Option, von der ich dachte, dass sie funktionieren könnte, besteht darin, zuerst die Suchkriterien zu verschlüsseln, z. B.

SELECT PlainTextA, PlainTextB, PlainTextC 
WHERE EncyptedColumn = ENCRYPTBYKEY(KEY_GUID('KeyName'), @SearchTerm)

Dies funktioniert jedoch nicht, da der generierte verschlüsselte Wert immer unterschiedlich ist.

Anregungen wäre sehr dankbar.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage