
従来からのDB2が実現するセキュリティー対策
コンプライアンスの確保が叫ばれる今日において、セキュリティー対策は組織が取り組まなければならない重要な問題のひとつです。その中でも、企業の重要情報を格納したデータベースのセキュリティー強化がますます求められています。
ルートユーザーがすべての権限を所有する、従来のアクセス制御の方法には限界があり、トップの権限を持つ
ユーザーのID、パスワードが漏洩してしまった場合、その影響はシステム全体に及んでしまいます。
DB2 9のセキュリティー機能では、ルートユーザーとは別にセキュリティー管理者を設定し、データベースの管理者とデータの管理者(セキュリティーの管理者)を分けることで、たとえルートユーザーであっても、必要のないデータにはアクセス出来ないように制御することが可能です。
セキュリティー管理者権限の追加
専用のセキュリティー管理者を設けて、セキュリティー管理を集中化して行うための新しい権限としてSECADM権限が追加されました。SECADM権限はシステム管理者(SYSADM)権限を持つユーザーからのみ付与されます。
従来はSYSADMユーザーは、セキュリティー関連の処置を含めすべての行為を行うことができましたが、DB2 9からは、SECADMが一度あるユーザーに付与されると、SECADMユーザーができることは、たとえSYSADMユーザーでも行えなくなりました。
ただし、SECADMユーザーが明示的に他のユーザーに特権を付与することは可能です。
LBACによるよりきめ細やかなセキュリティー設定
データベース内にある重要データへのアクセスを、きめ細かく制御するための機能として、LBAC(Label Based Access Control)という機能が新たに加わりました。どのデータに誰がアクセスしていいかの「ラベル」を定義することで、行レベルまたは列レベルに対する参照/更新に対するアクセス制御を行うことができます。
例えば図1の例だと、給与とボーナスの列は人事部だけに更新可能にさせる、コミッションの列は営業部門の
給与管理者のみに更新可能にさせるといった、列レベルのアクセス制御が可能になります。

図1:列レベルでのアクセス制御
列レベルだけではなく行レベルでも設定可能です。
先ほどの従業員表で、給与が500万円以上の社員を検索します。LBACを使用しないと、誰でもが「給与が500万以上」という条件にあてはまるデータを検索することができます。ところが以下のように組織に上下関係があって、誰がどのデータにアクセスできるかを制限したい場合、LBACによって組織ごとに参照することができるデータを決めることができます。
図2の例では、本社の給与管理者は配下(東日本支社, 西日本支社, 鹿児島支店)の給与すべてを見ることができます。東日本支社の給与管理者は東日本支社の給与のみ、西日本支社の給与管理者は自分の組織と配下の給与(西日本支社, 鹿児島支店)、鹿児島支店の給与管理者は鹿児島支店の給与のみを参照することができます。

図2:行レベルでのアクセス制御
行レベル、列レベルのアクセス制御を組み合わせて使用することもできます。
このLBACの定義を行えるのは、SECADMユーザーになります。
従来からいくつかあるセキュリティー関連の特権やLBACの管理など、セキュリティー関連でできることをSECADMに集中させることで、セキュリティー管理の集中化と強化が図られることになります。
DB2 9で堅牢なデータベースインフラ構築を!
今回はLBACを中心にご紹介しましたが、DB2にはその他にもデータやID/パスワードの暗号化、クライアント/サーバー間の通信の暗号化、データベースの監査機能など、漏洩を未然に防ぐ機能があります。さらに、DB2 ESE V9.1.1は情報セキュリティー国際評価基準 ISO/IEC15408の保証レベルEAL4(Evaluation Assurance Level)の認定を受けています。
これまで以上に、データベースにおける脅威を正しく認識し、適切なセキュリティー対策をどのように行なうかを視野に入れてシステムを構築する必要があります。
DB2 9のセキュリティー機能はさまざまなセキュリティー要件に答えることができる優れた機能です。
DB2 9 のラベル・ベースのアクセス制御機能のご注文と参考料金
DB2は、DB2 Enterprise Server Editionを選択ください。
ラベル・ベースのアクセス制御機能を使用するためにDB2 Advanced Access Control Featureをご発注ください。
課金単位(VUまたは許可ユーザー)は、DB2 Enterprise Server Editionと同じにしてください。
