ヘッダーをスキップ

Oracle® Database Firewall管理ガイド リリース5.1 B66170-01 |
| 目次 | 索引

前 | 次 |

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

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

- 直接データベース問合せ(DDI)の概要

- SQL ServerとSybase SQL Anywhereのデータベースに対するDDIの構成

- Oracle Advanced Securityを使用するOracleデータベースに対するDDIの構成

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

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

## 直接データベース問合せ(DDI)の概要

直接データベース問合せ(DDI)を使用すると、Database Firewallがサポート対象のデータベースに対して特定の情報を問い合せることができます。収集される情報は、データベースのタイプによって異なります。

### DDIを使用したSQL ServerデータベースとSQL Anywhereデータベースの問合せ

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

これらの2つのデータベースに対してDDIを構成する手順は、次のとおりです。

- 提供されているスクリプトを実行し、保護対象データベースの既存のユーザー・アカウントに権限を付与します。「SQL ServerとSybase SQL Anywhereのデータベースに対するDDIの構成」を参照してください。

- 保護対象データベースを監視する強制ポイントでDDIを有効にします。「直接データベース問合せの有効化」を参照してください。

### DDIを使用して、Oracle Advanced Securityを使用するOracleデータベースを監視

Oracle Advanced Securityの暗号化を使用するOracleデータベースを監視している場合には、そのデータベースに送信される文や、データベースから受信される応答を復号化するためにDDIを使用する必要があります。

Oracle Advanced Securityを使用するOracleデータベースに対するDDIの構成

Oracle Advanced Securityを使用するOracleデータベースに対してDDIを構成するには、次の手順が必要です。

- 保護対象のOracleデータベースにパッチを適用します。「指定されたパッチのOracleデータベースへの適用」を参照してください。

- Database Firewallから保護対象のOracleデータベースに公開鍵を指定します。「Oracleデータベースへの公開鍵の指定」を参照してください。

- データベースを監視する強制ポイントでDDIを有効にします。「直接データベース問合せの有効化」を参照してください。

Oracleデータベースの文の復号化に関する制限

Oracle Advanced Securityを使用してトラフィックを復号化するようにDatabase Firewallを構成する際には、次の制限があります。

- サポートされるOracle Databaseのバージョンは、10.x、11.1、11.2です。

- Oracle Advanced Securityのチェックサムを使用する場合、Database Firewallで文の置換は行われません。

- Oracle Advanced SecurityのRC4暗号はサポートされません。

- Oracle RACやクラスタはサポートされません。

## SQL ServerとSybase SQL Anywhereのデータベースに対するDDIの構成

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

- Microsoft SQL ServerデータベースでのDDIユーザー権限の設定

- Sybase SQL AnywhereデータベースでのDDIユーザー権限の設定

- SQL ServerまたはSybase SQL Anywhereのデータベースに対する強制ポイントでのDDIの有効化

### Microsoft SQL ServerデータベースでのDDIユーザー権限の設定

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

1. Oracle Database Firewall製品のCD (`Oracle Database Firewall Utilities 5.1`)から、スクリプトを実行するサーバーに`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`: システム管理者のユーザー名を入力します。

   - `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データベースでのDDIユーザー権限の設定

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

1. Oracle Database Firewall製品のCD (`Oracle Database Firewall Utilities 5.1`)から、スクリプトを実行するサーバーに`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`: システム管理者のユーザー名を入力します。

   - `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

### SQL ServerまたはSQL Anywhereのデータベースに対する強制ポイントでのDDIの有効化

「直接データベース問合せの有効化」の手順に従って、Microsoft SQL ServerまたはSybase SQL Anywhereのデータベースに対するDDIの設定を完了します。

## Oracle Advanced Securityを使用するOracleデータベースに対するDDIの構成

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

- 指定されたパッチのOracleデータベースへの適用

- Oracleデータベースへの公開鍵の指定

- Oracleデータベースに対する強制ポイントでのDDIの有効化

### 指定されたパッチのOracleデータベースへの適用

Oracle Advanced Securityを使用するOracleデータベースに、この項で指定したパッチを適用する必要があります。

パッチを適用する手順は、次のとおりです。

1. Oracleデータベースを停止します。

2. 次のコマンドを実行します。

   `$ORACLE_HOME/OPatch/opatch apply` `path_to_patchfile``.zip`

   このパッチのIDは、バグ番号`13051081`です。したがって、パッチ・ファイルは`p13051081_``OracleVersion``_``Platform``.zip`という形式になります。

3. Oracle Databaseを起動します。

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

5. このサーバーで、`database/ddi`ディレクトリに移動し、`oracle`圧縮ファイルを`oracle`というディレクトリ(推奨)に解凍します。

   このディレクトリには、解凍された`advanced_security_integration.sql`というファイルが含まれます。

6. 次のコマンドの実行

   `sqlplus / as sysdba @advanced_security_integration` `username` `password`

### Oracleデータベースへの公開鍵の指定

直接データベース問合せを使用するデータベース・トラフィックを復号化するためには、Oracle Advanced Securityを使用するOracleデータベースに公開鍵を指定する必要があります。

この公開鍵をコピーする手順は、次のとおりです。

1. Oracleデータベースを監視するDatabase Firewallの管理コンソールで「System」タブをクリックし、「System」メニューで「Public Keys」をクリックします。

2. 「Oracle Advanced Security Decryption」の下にある公開鍵をコピーし、Oracleデータベースに指定します。

   図版public_key_aso.gifの説明

### Oracleデータベースに対する強制ポイントでのDDIの有効化

「直接データベース問合せの有効化」の手順に従って、Oracle Advanced Securityを使用するOracleデータベースに対するDDIの設定を完了します。

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

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

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

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

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

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

3. 問合せされる保護対象データベースを監視する強制ポイントを検索し、その強制ポイントの「Settings」ボタンをクリックします。

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

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

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

   図image101.jpgの説明

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

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

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

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

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

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

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

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

3. DDIを無効にするデータベースを監視する強制ポイントの「Settings」ボタンをクリックします。

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

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

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

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