DBMSのセキュリティ、整合性、認可の基礎知識
データベースセキュリティとは
データベースセキュリティにはさまざまな階層がありますが、中でも重要な要素として「認証」と「認可」が挙げられます。それぞれの仕組みを理解することで、より安全なデータベース運用につながります。
認証(Authentication)
ユーザー認証とは、データベースへアクセスしようとする人物が、本当に本人であることを確認する仕組みです。認証はオペレーティングシステム(OS)レベルで実施することも、データベース自体のレベルで実施することも可能です。さらに、網膜スキャナや生体認証などの高度な認証システムを導入すれば、権限のない人物による不正アクセスを効果的に防ぐことができます。
認可(Authorization)
認可は、データベース管理者(DBA)によって付与される権限です。ユーザーは、許可された範囲のデータのみを閲覧でき、それ以外の領域には一切アクセスできません。これにより、情報漏洩や誤操作のリスクを最小限に抑えられます。
認可で利用できる主な権限の種類は以下の通りです。
- 基本権限(Primary Permission):ユーザーに対して公開かつ直接的に付与される権限です。
- 二次権限(Secondary Permission):グループに対して付与され、そのグループに所属するユーザーには自動的に付与されます。
- 公開権限(Public Permission):すべてのユーザーに公開して付与される権限です。
- 状況依存権限(Context Sensitive Permission):機密性の高いコンテンツに関連する権限で、選ばれた一部のユーザーのみに付与されます。
また、ユーザーに付与できる認可のカテゴリは以下の4つに分類されます。
- システム管理者権限(System Administrator):ユーザーに対する最高位の管理権限です。この権限を持つユーザーは、データベースの復元やアップグレードなど、一部のデータベース管理者コマンドも実行できます。
- システム制御権限(System Control):ユーザーに対する最高位の制御権限です。データベースのメンテナンス作業は行えますが、データへの直接アクセスはできません。
- システム保守権限(System Maintenance):システム制御権限よりも低いレベルの権限です。データベースマネージャーのインスタンス内であれば、データベースの保守を行うことができます。
- システム監視権限(System Monitor):この権限を持つユーザーは、データベースを監視し、スナップショットを取得することができます。
データベースの整合性
データベースにおけるデータ整合性とは、データの正確性・一貫性・完全性を指します。整合性は、以下の3つの整合性制約によって担保されます。
- 実体整合性(Entity Integrity):主キーに関する概念です。すべてのテーブルは固有の主キーを持つ必要があり、主キーは各行を一意に識別できる値であり、NULLであってはなりません。
- 参照整合性(Referential Integrity):外部キーに関する概念です。外部キーとは、あるリレーション(表)において別のリレーションから参照されるキーのことです。
- ドメイン整合性(Domain Integrity):データベース内のすべての列(カラム)に対して、定義されたドメイン(取りうる値の範囲)が存在しなければならないという概念です。
-
分散型データベース管理システム(DDBMS)のメリットとデメリットを徹底解説
分散型データベース管理システム(DDBMS:Distributed Database Management System)は、データを複数の場所に分散して保持するシステムです。データの保存先は、同じ拠点内の異なるサーバーである場合もあれば、地理的に離れた複数の拠点にまたがる場合もあります。下図の例では、データベースが複数のロケーションに分割され、Site1、Site2、Site3、Site4の4つのサイトにデータが格納されています。本記事では、DDBMSのメリットとデメリットについて詳しく解説します。DDBMSのメリット(長所)拡張性の高さ:データベースがすでに複数のシステムに分散しているため
-
MongoDBセキュリティ強化の10のコツ:データベースを脅威から守るための基本対策
MongoDB®は手軽に導入できることで人気の高いNoSQLデータベースですが、継続的に追加される新機能に伴い、いくつかの落とし穴に直面することもあります。その中でも特に注意が必要なのが「セキュリティ」です。本記事では、MongoDBを安全に運用するためのポイントを詳しく解説します。 はじめに MongoDBアプリケーションにおけるセキュリティ維持は、データベース運用において極めて重要です。システムやデータベースの脆弱性(ループホール)を特定し、脅威から保護するためのセキュリティ手法を理解しておく必要があります。米国国防総省が定めるSecurity Technical Implementati