MS SQL データベース (name, ssn ...) のいくつかの列を暗号化する必要があり、次のようないくつかのサイトで説明されているように、列の暗号化を検討しています: Encrypting Column Level Data in SQL Server and Introduction to SQL Server Encryption and対称鍵暗号化のチュートリアル.
挿入時にトリガーを使用して列を暗号化することができ、次を使用して SQL Studio 内で列を復号化できます。
OPEN SYMMETRIC KEY TestTableKey
DECRYPTION BY PASSWORD = 'Pa$$w0rd'
CONVERT(VARCHAR(50),DECRYPTBYKEY(EncryptSecondCol)) AS DecryptSecondCol
FROM TestTable
しかし、アプリケーションからデータにアクセスするにはどうすればよいでしょうか? 名前を検索できるようにしたいです。私が考えることができる唯一のことは、ストアド プロシージャを使用し、復号化パスワードを LINQ ステートメントのパラメーターとして送信して、ストアド プロシージャがデータを復号化し、クエリを実行できるようにすることです。
私は正しい軌道に乗っていますか?
私はこれに慣れていないので、他の有用な提案を歓迎します。