データベースを効果的に保護するために、組織はさまざまなツールとテクノロジーを適用する必要があります。 目的は、データの機密性と整合性を保護し、アクセスを許可されたユーザーとアプリケーションのみがデータを利用できるようにし、境界防御が失敗した場合でも他のすべての人/すべての物がデータにアクセスできないようにすることです。 したがって、組織は、データベースのセキュリティを、ユーザーアクセスを制御し、保管中、転送中、および使用中の重要なデータを保護するために必要な構成要素と見なし、規制遵守を促進する必要があります。 データベース内に存在するデータを保護する場合、6つの異なるセキュリティオプションがあります。 データは、ストレージレベル、ファイルシステム、実際のデータベーススキーマ、アプリケーションレベル、プロキシ、またはエンドユーザー アプリケーションで保護できます。 ストレージレベルの暗号化には、データの機密性を保護するメカニズムを提供する自己暗号化ドライブ（SED）が含まれています。 商用SEDは通常、Key Management Interoperability Protocol（KMIP）などの標準に合わせて構築されているため、暗号化鍵を一貫した方法で外部から管理できます。 通常、ストレージレベルのソリューションは低コストで、実装と保守が容易です。 ただしこれは、物理的なデータストレージの損失を防ぐだけです。 ファイルレベルの暗号化には、Microsoft BitLockerやLinux LUKSなどのネイティブ オペレーティングシステム ソリューションが含まれており、外部暗号化機能で強化することもできます。 ソリューションによっては、特権ユーザーから保護することもできます。 外部ソリューションはオペレーティングシステムに依存するため、使用がより困難になる可能性があります。 データベースレベルの暗号化は、確立されたベンダーがMicrosoft SQL、Oracle MySQLなどのオンプレミスで透過的なデータベース暗号化（TDE）を提供し、クラウドでは AWS、GCP、Microsoft Azure、Oracle Cloudなどを使用しています。 このレベルでは、データ損失に対する優れた保護が提供されますが、通常、鍵管理は脆弱です。 サードパーティの鍵マネージャーを使用して、この機能を強化できます。 アプリケーションレベルの暗号化は、トークン化やフォーマット保持暗号化などのテクノロジーを使用して、構造を変更せずにデータを保護できます。 これらのメカニズムは高いセキュリティを提供し、アプリケーションに変更を加える必要はありませんが、通常は本質的にカスタマイズされており、実装がより困難です。 プロキシ層の暗号化は、ユーザーとデータを処理するウェブアプリケーションとの間の透過的なインターフェイスを提供します。 通常、アプリケーションを変更する必要なく、堅牢なセキュリティを提供します。 ただし、これは単一障害点であり、パフォーマンスとスケーラビリティが複雑になる可能性があります。 エンドユーザー アプリケーションの暗号化は、エンド ツー エンドのセキュリティで最高レベルの保護を提供しますが、専用のインターフェイスが必要なため、実装が難しくなります。