ヘッダーをスキップ
Oracle® Database Firewall管理ガイド
リリース5.0
B65097-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

9 直接データベース問合せの構成および使用

この章の内容は、次のとおりです。

直接データベース問合せの概要

直接データベース問合せを使用すると、SQL文を作成したデータベース・ユーザーの名前、オペレーティング・システムおよびクライアント・プログラムの情報を文自体から取得できない場合に、監視対象データベースに問い合せて取得できます。この情報は、Database Firewallレポートで使用できます。直接データベース問合せは、Microsoft SQL ServerデータベースおよびSybase SQL Anywhereデータベースでのみ使用できます。

直接データベース問合せを構成するには、付属のスクリプトを実行して保護対象データベースの既存のユーザー・アカウントに権限を付与し、その保護対象データベースを管理しているDatabase Firewallから直接データベース問合せ機能を有効にする必要があります。

直接データベース問合せに対するユーザー権限の設定

この項の内容は、次のとおりです。

SQL Serverデータベースにおける直接データベース問合せに対するユーザー権限の設定

Microsoft SQL Server (2005または2008バージョン)データベースのユーザー・アカウントを設定する手順は、次のとおりです。

  1. Oracle Database Firewall製品のCD (Oracle Database Firewall Utilities 5.0)から、スクリプトを実行するサーバーにdatabaseディレクトリをコピーします。

  2. スクリプトを実行するコンピュータにsqlcmd.exeユーティリティがインストールされていることを確認します。

  3. このサーバーで、database/ddiディレクトリに移動し、sqlserver圧縮ファイルをsqlserverというディレクトリ(推奨)に解凍します。このディレクトリには、ddi_add_user.sqlという解凍されたファイルが格納されます。

    ddi_add_user.sqlスクリプトには、次の情報に関する設定が含まれています。

    • $(username)は、直接データベース問合せを担当するユーザー・アカウントです。このユーザー・アカウントは、ストアド・プロシージャおよびユーザー・ロール監査(ddi_auditorなど)用に指定したユーザー・アカウントとは異なるユーザー・アカウントにすることが理想的です。

    • $(password)は、このユーザー・アカウントのパスワードです。

  4. ユーザーの作成およびユーザー権限の設定を行う権限が付与されたユーザーとして、SQL Serverデータベースに対してddi_add_user.sqlスクリプトを実行します。

    構文は、次のとおりです。

    sqlcmd -S server_name -U sa -P sa_password -i ddi_add_user.sql 
    -v username="username" password="password"
    

    詳細は、次のとおりです。

    • server_name: 保護対象データベースが存在するデータベース・サーバーの名前またはIPアドレスを入力します。この引数を使用するのは、リモート・サーバーからスクリプトを実行する場合のみです。このスクリプトをローカルで実行する場合は、この引数を省略できます。

    • sa_password: システム管理者のパスワードを入力します。

    • username: ddi_add_user.sqlスクリプトに$(username)で指定された、直接データベース問合せ用に作成するユーザー・アカウントを入力します。このユーザー名は二重引用符で囲みます。

    • password: ddi_add_user.sqlスクリプトに$(password)で指定された、直接データベース問合せ用のユーザー・アカウントのパスワードを入力します。このパスワードは二重引用符で囲みます。

    次に例を示します。

    sqlcmd -U sa -P sa_password -i ddi_add_user.sql  -v username="ddi_auditor" password="abcd1234"
    
    sqlcmd -S my_server -U sa -P sa_password -i ddi_add_user.sql 
    -v username="ddi_auditor" password="abcd1234"
    

ddi_add_user.sqlスクリプトでは、直接データベース問合せ用のユーザー・アカウントに次の権限が付与されます。

  • VIEW ANY DEFINITIONおよびVIEW SERVER STATE(SQL Server 2005以降)

  • master.dbo.sysdatabases表に対するSELECT

Sybase SQL Anywhereデータベースにおける直接データベース問合せに対するユーザー権限の設定

Sybase SQL Anywhereデータベースの直接データベース問合せのユーザー権限を設定する手順、次のとおりです。

  1. Oracle Database Firewall製品のCD (Oracle Database Firewall Utilities 5.0)から、スクリプトを実行するサーバーにdatabaseディレクトリをコピーします。

  2. このサーバーで、database/ddiディレクトリに移動し、sqlanywhere圧縮ファイルをsqlanywhereというディレクトリ(推奨)に解凍します。このディレクトリには、解凍されたddi_add_user.sqlというファイルが含まれます。

    このスクリプトには、次の情報に関する設定が含まれています。

    • $(username)は、直接データベース問合せを担当するユーザー・アカウントです。このユーザー・アカウントは、ストアド・プロシージャおよびユーザー・ロール監査(ddi_auditorなど)用に指定したユーザー・アカウントとは異なるユーザー・アカウントにすることが理想的です。

    • $(password)は、このユーザー・アカウントのパスワードです。

  3. ユーザーの作成およびユーザー権限の設定を行う権限が付与されたユーザーとして、SQL Anywhereデータベースに対してddi_add_user.sqlスクリプトを実行します。

    構文は、次のとおりです。

    isql -S server_name -U sa -P sa_password -i ddi_add_user.sql
    -v username="username" password="password" database="protected_database"
    

    詳細は、次のとおりです。

    • server_name: この引数を使用するのは、データベースがリモートの場合のみです。サーバーまたはそのIPアドレスの名前を入力できます。スクリプトをローカルで実行する場合は、-S server_name引数を省略できます。

    • sa_password: システム管理者のパスワードを入力します。

    • username: ddi_add_user.sqlスクリプトに$(username)で指定された、直接データベース問合せ用に作成するユーザー・アカウントを入力します。このユーザー名は二重引用符で囲みます。

    • password: ddi_add_user.sqlスクリプトに$(password)で指定された、直接データベース問合せ用のユーザー・アカウントのパスワードを入力します。このパスワードは二重引用符で囲みます。

    • database="protected_database": ddi_add_user.sqlスクリプトに$(database)で指定された、このサーバー内の保護対象データベースの名前を入力します。このデータベース名は二重引用符で囲みます。

    次に例を示します。

    isql -U sa -P sa_password -i sddi_add_user.sql
    -v username="ddi_auditor" password="abcd1234" database="sales_db"
    
    isql -S my_server -U sa -P sa_password -i sddi_add_user.sql
    -v username="ddi_auditor" password="abcd1234" database="sales_db"
    

ddi_add_user.sqlスクリプトでは、直接データベース問合せ用のユーザー・アカウントに次の権限が付与されます。

  • CONNECT

  • システム表に対するSELECT

    sys.sysuser
    sys.sysuserauthority
    sys.sysremoteuser
    sys.sysloginmap
    sys.sysgroup
    

直接データベース問合せの有効化

Database Firewallで直接データベース問合せを有効にする手順は、次のとおりです。

  1. Management Server管理コンソールにログインします。

    詳細は、「管理コンソールへのログイン」を参照してください。

  2. 「Monitoring」タブをクリックします。

    デフォルトでは、「Enforcement Points」ページが表示されます。表示されない場合は、ページの左側の「Enforcement Points」メニューで「List」をクリックします。

  3. リモート・モニターで使用する強制ポイントを検索し、その強制ポイントの「Settings」ボタンをクリックします。

    「Monitor Settings」ページが表示されます。

  4. 「Database Interrogation」領域まで下にスクロールし、「Activate Database Interrogation」チェック・ボックスをクリックします。

    「Activate Database Interrogation」領域が展開され、必要な認証の詳細を入力できます。

    image101.jpgの説明が続きます
    図image101.jpgの説明

  5. 「Monitor Settings」ページの最後までスクロールして、「Save」ボタンをクリックします。

直接データベース問合せの無効化

直接データベース問合せを一時的に無効化できます。Oracle Database Firewallでは、作成した構成情報が、次回直接データベース問合せを有効化したときのために保存されます。直接データベース問合せの構成およびソフトウェアを削除する場合は、『Oracle Database Firewallインストレーション・ガイド』を参照してください。

直接データベース問合せを無効にする手順は、次のとおりです。

  1. Management Server管理コンソールにログインします。

    詳細は、「管理コンソールへのログイン」を参照してください。

  2. Monitoring」タブを選択します。

    デフォルトでは、「Enforcement Points」ページが表示されます。

  3. リモート・モニターで使用する強制ポイントの「Settings」ボタンをクリックします。

    「Monitor Settings」ページが表示されます。

  4. 「Direct Database Interrogation」領域まで下にスクロールします。

  5. 「Activate Database Interrogation」チェック・ボックスの選択を解除します。

  6. 「Monitor Settings」ページの最後までスクロールして、「Save」ボタンをクリックします。