私はSQL暗号化メソッドについて読んでいました。TDEについて十分に理解していて、次に暗号化列について読んだ後、常に暗号化について読みました。 Always Encrypted の説明は非常に長く詳細ですが、 Encrypted Columns のテキストはそれほど深くありませんが、同じことをするように思えます。 2の違いを理解したいのですが、新しいバージョンに利点があるかどうかを教えてください。
私が知っている主な違いは
通常の列の暗号化
SQL Server 2005から導入された通常の列暗号化では、関数 Encryptbycert を使用して列を暗号化します。この方法では、SQL Serverでデータがクリアテキストとして送信され、トレースからこのデータを見ることができるという点で、Always Encryptedと比較して安全性は低くなります。 SQL Serverへの管理者アクセス権を持つDBAはデータを表示できるため、実際には完全には保護されていません。
常に暗号化されます
常に暗号化されるので、暗号化はADO.net、ODBCのようなAPIによってクライアントアプリで行われます。この暗号化を行うために、ドライバーはクライアント側にインストールされます。これにより、SQL Serverはテキストデータを表示できなくなり、DBAやSQL Serverの管理者アクセス権を持つユーザーにはそのデータが表示されなくなります。 Always Encryptedを使用すると、クライアントはクライアントアプリケーション内の機密データを暗号化でき、暗号化キーをデータベースエンジンに公開することはできません。
Docs.Microsoft からの引用
Always Encryptedは、暗号化をアプリケーションに対して透過的にします。クライアントコンピューターにインストールされたAlways Encrypted対応ドライバーは、クライアントアプリケーションで機密データを自動的に暗号化および復号化することによってこれを実現します。ドライバーは、データをデータベースエンジンに渡す前に機密性の高い列のデータを暗号化し、アプリケーションへのセマンティクスが保持されるように自動的にクエリを書き換えます。同様に、ドライバーは、暗号化されたデータベース列に格納され、クエリ結果に含まれるデータを透過的に復号化します。
私はあなたに両方の技術についてのいくつかの洞察を与えることができると思います。