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

前
 
次
 

6 ロール監査の構成および使用

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

ユーザー・ロール監査(URA)の概要

ユーザー・ロール監査(URA)を使用すると、ユーザーは、指定したデータベース・サーバーにあるデータベースのユーザー・ロールに対する変更を監査および承認できます。Oracle Database Firewallは、スケジュールされた間隔でデータベース・サーバーに接続し、ユーザー・ロールに対して行われた変更または追加があればそれを検出します。ユーザー・ロール監査は、Oracle、Microsoft SQL Server、My SQL、Sybase ASE、Sybase SQL AnywhereおよびIBM DB2 (Microsoft Windows、UNIXおよびLinux)データベースでサポートされています。

この章では、ユーザー・ロールに対する変更をユーザーが監査できるようにDatabase Firewallで保護されたデータベースを構成する方法について説明します。ユーザー・ロールに対する監査の詳細は、『Oracle Database Firewallセキュリティ・ガイド』を参照してください。

URAに対するユーザー権限の設定

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

OracleデータベースにおけるURAに対するユーザー権限の設定

Oracleデータベース(Oracle Database 8iより後のすべてのリリース)のユーザー・アカウントを設定する手順は、次のとおりです。

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

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

  3. oracleディレクトリに移動して解凍したファイル(ura_setup.sql)を確認し、その設定を理解します。

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

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

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

  4. ユーザーの作成およびユーザー権限の設定を行う権限が付与されているユーザーとして、Oracle Databaseにログインします。

    次に例を示します。

    sqlplus sys/as sysdba
    Enter password: password
    Connected. 
    SQL> 
    

    Oracle Database Vaultとともに使用するデータベースの場合は、DV_ACCTMGRロールが付与されたユーザーとしてログインします。

  5. ura_setupスクリプトを実行し、必要に応じてプロンプトに応答します。

    次に例を示します。

    SQL> @database/ura/oracle/ura_setup.sql
    username: as parameter 1:
    Enter value for 1: user_name
    password: as parameter 2:
    Enter value for 2: password
    

    ura_setup.sqlスクリプトでは、ユーザー・ロール監査用のユーザー・アカウントに次の権限が付与されます。

    • CREATE SESSION

    • システム表に対するSELECT

      sys.dba_users
      sys.dba_role_privs
      sys.dba_sys_privs
      sys.proxy_users
      v$pwfile_users
      
  6. (オプション)このユーザー・アカウントを削除する必要がある場合には、ura_dropスクリプトを実行します。

    次に例を示します。

    SQL> @database/ura/oracle/ura_setup.sql
    username: as parameter 1:
    Enter value for 1: user_name
    

SQL ServerデータベースにおけるURAに対するユーザー権限の設定

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

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

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

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

  4. sqlserverディレクトリに移動して解凍したファイルを確認し、その設定を理解します。

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

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

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

    • $(database)は、監査対象データベースです。

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

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

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

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

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

    • sa: システム管理者のユーザー名を入力します。

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

    • username: スクリプトに$(username)で指定された、ユーザー・ロール監査用に作成するユーザー・アカウントを入力します。このユーザー名は二重引用符で囲みます。

    • password: スクリプトに$(password)で指定された、ユーザー・ロール監査用のユーザー・アカウントのパスワードを入力します。このパスワードは二重引用符で囲みます。

    次に、コマンドの例を2つ示します。(行が折り返していますが、1行のコマンドです。)

    sqlcmd -U sa -P sa_password -i ura_add_user.sql  -v username="ura_auditor" password="abcd1234"
    
    sqlcmd -S my_server -U sa -P sa_password -i ura_add_user.sql 
    -v username="ura_auditor" password="abcd1234"
    
  6. ura_add_db_permissionsまたはura_add_all_db_permissionsスクリプトを実行して、ユーザーに権限を付与します。

    次の例はスクリプトをリモートで実行する方法を示していますが、スクリプトをローカルで実行する場合は、-S server_name引数を省略します。

    特定のデータベースに対する権限については、次の構文を使用します。

    sqlcmd -S server_name -U sa -P sa_password -i ura_add_db_permissions.sql 
    -v username="username" database="protected_database"
    

    database="protected_database"の設定は、次のようにします。

    • スクリプトに$(database)で指定された、このサーバー内の監査対象データベースの名前を入力します。

    • このデータベース名は二重引用符で囲みます。

    すべてのデータベースに対する権限については、次の構文を使用します。

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

    次に、コマンドの例を2つ示します。(行が折り返していますが、1行のコマンドです。)

    sqlcmd -S my_server -U sa -P sa_password -i ura_add_db_permissions.sql
    -v username="jsmith" database="my_database"
    
    sqlcmd -S server_name -U sa -P sa_password -i ura_add_all_db_permissions.sql
    -v username="jsmith"
    

    このスクリプトでは、ユーザー・ロール監査用のユーザー・アカウントに次の権限が付与されます。

    • VIEW ANY DEFINITION(SQL Server 2005以降)

    • 次の表に対するSELECT

      master.dbo.sysdatabases
      master.dbo.syslogins
      specific_database.dbo.sysmembers
      specific_database.dbo.sysusers
      
  7. (オプション)前述のユーザー権限を削除する必要がある場合には、ura_drop_db_permissionsまたはura_drop_all_db_permissionsスクリプトを実行します。

    個々のデータベースの場合は、次の構文を使用します。

    sqlcmd -S server_name -U sa -P sa_password -i ura_drop_db_permissions.sql 
    -v username="username" database="protected_database"
    

    すべてのデータベースの場合は、次の構文を使用します。

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

    次に、コマンドの例を2つ示します。(行が折り返していますが、1行のコマンドです。)

    sqlcmd -S my_server -U sa -P sa_password -i ura_drop_db_permissions.sql
    -v username="jsmith" database="my_database"
    
    sqlcmd -S server_name -U sa -P sa_password -i ura_drop_all_db_permissions.sql
    -v username="jsmith"
    
  8. (オプション) SQL Serverデータベースからユーザー・ロール監査のユーザーを削除する必要がある場合には、ura_drop_userスクリプトを実行します。

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

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

    次に例を示します。

    sqlcmd -U sa -P sa_password -i ura_drop_user.sql  -v username="ura_auditor"
    

MySQLデータベースにおけるURAに対するユーザー権限の設定

MySQLデータベースのユーザー・アカウントを設定する手順は、次のとおりです。

  1. ユーザーの作成およびユーザー権限の設定を行う権限が付与されているユーザーとして、データベースにログインし、MySQLデータベースに対して次のコマンドを実行します。

    create user 'username'@'hostname' identified by 'password'
    

    usernameにはユーザー・ロール監査のアカウント名を使用し、hostnameにはDatabase Firewallのホスト名を使用します。次に例を示します。

    create user 'ura_auditor'@'10.155.56.2' identified by 'jj_1234'
    
  2. 次のコマンドを実行して、作成したユーザーに必要な権限を付与します。

    grant select on mysql.user TO 'username'@'hostname'
    

    次に例を示します。

    grant select on mysql.user TO 'ura_auditor'@'10.155.56.2'
    

    上のコマンドでは、ストアド・プロシージャ監査用のユーザー・アカウントに次の権限が付与されます: SELECT on the mysql.user system table。

  3. (オプション) MySQLデータベースからストアド・プロシージャ監査のユーザーを削除する必要がある場合には、次のコマンドを実行します。

    drop user 'username'@'hostname'
    

    次に例を示します。

    drop user 'spa_auditor'@'10.155.56.2'
    

Sybase ASEデータベースにおけるURAに対するユーザー権限の設定

Sybase Adaptive Server Enterpriseのユーザー・アカウントを設定する手順は、次のとおりです。

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

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

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

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

    isql -S server_name -U sa -P sa_password -i ura_add_user.sql 
    

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

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

    • sa: システム管理者のユーザー名を入力します。

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

    次に例を示します。

    isql -U sa -P sa_password -i ura_add_user.sql
    
    isql -S my_server -U sa -P sa_password -i ura_add_user.sql 
    
  4. ura_add_db_permissions.sqlスクリプトを実行して、このユーザーに権限を付与します。

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

    isql -S server_name -U sa -P password -i  ura_add_db_permissions.sql
    

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

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

    • sa: システム管理者のユーザー名を入力します。

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

    このスクリプトでは、ユーザー・ロール監査用のユーザー・アカウントに次の権限が付与されます。

    • 次の表に対するSELECT

      master.dbo.sysdatabases
      master.dbo.syslogins
      master.dbo.sysloginroles
      master.dbo.syssrvroles
      master.dbo.sysattributes
      specific_database.sysusers
      specific_database.sysalternates
      specific_database.sysroles
      
  5. (オプション)前述の権限を削除する必要がある場合には、ura_drop_db_permissionsスクリプトを実行します。

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

    isql -S server_name -U sa -P sa_password -i ura_drop_db_permissions.sql
    
  6. (オプション) ユーザー・ロール監査のユーザーを削除する必要がある場合には、Sybase ASEデータベースに対してura_drop_userスクリプトを実行します。

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

    isql -S server_name -U sa -P sa_password -i ura_add_user.sql 
    

Sybase SQL AnywhereデータベースにおけるURAに対するユーザー権限の設定

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

Linux用のSybase SQL Anywhere ODBCドライバのインストール

Sybase SQL Anywhereを使用する前に、Linux用のSQL Anywhere ODBCドライバをインストールする必要があります。

Linux用のODBCドライバをインストールする手順は、次のとおりです。

  1. Database Firewallサーバーにrootユーザーとしてログインします。

  2. Sybase SQL Anywhereのインストール・メディアから、linux_x86_GA_sa1101_2044_l10n.tar.gzをDatabase Firewallサーバー上の安全な場所にコピーします。

  3. このアーカイブ・ファイルを展開します。

    tar zxvf linux_x86_GA_sa1101_2044_l10n.tar.gz
    
  4. setupユーティリティを実行し、クライアントのインストールを開始します。

    ./setup
    
  5. プロンプトが表示された場合は、次のインストールのみを選択します。3.Administration Tools

  6. プロンプトが表示された場合は、/var/sqlanywhere11ディレクトリにクライアントをインストールします。

  7. Sybase SQL Anywhereのインストール・メディアから、sa11_full_linux_x86+x64.1101_2420_ebf.tar.gzをDatabase Firewallサーバーにコピーします。

  8. このアーカイブ・ファイルを展開します。

    tar zxvf sa11_full_linux_x86+x64.1101_2420_ebf.tar.gz
    
  9. setupユーティリティを実行し、クライアントのインストールを開始します。

    ./setup
    
  10. プロンプトが表示された場合は、/var/sqlanywhere11ディレクトリへのインストールを選択します。

URAに対するユーザー権限の設定

Sybase SQL Anywhereのユーザー・アカウントを設定する手順は、次のとおりです。

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

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

  3. sqlanywhereディレクトリに移動して解凍したファイル(ura_setup.sql)を確認し、これらのスクリプトのユーザーに付与される権限を理解します。

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

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

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

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

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

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

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

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

    • username: スクリプトに$(username)で指定された、ユーザー・ロール監査用に作成するユーザー・アカウントを入力します。このユーザー名は二重引用符で囲みます。

    • password: スクリプトに$(password)で指定された、ユーザー・ロール監査用のユーザー・アカウントのパスワードを入力します。このパスワードは二重引用符で囲みます。

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

    次に例を示します。

    isql -S my_server -U sa -P password -i ura_setup.sql
    -v username="ura_auditor" password="$(password)_password" database="sales_db"
    

    ura_setupスクリプトは、ユーザー・ロール監査用のユーザー・アカウントに次の権限が付与されます。

    • CONNECT

    • システム表に対するSELECT

      sys.sysuser
      sys.sysuserauthority
      sys.sysremoteuser
      sys.sysloginmap
      sys.sysgroup
      
  5. (オプション)前述の権限を削除する必要がある場合には、SQL Anywhereデータベースに対してura_dropスクリプトを実行します。

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

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

IBM DB2 SQLデータベースにおけるURAに対するユーザー権限の設定

IBM DB2のユーザー・アカウントを設定するためにスクリプトを実行する必要はありません。かわりに、新しいユーザー・アカウントを作成するか、既存のユーザー・アカウントをユーザー・ロール監査で使用できるように指定します。

IBM DB2のユーザー・アカウントを設定する手順は、次のとおりです。

  1. 監査対象のIBM DB2 Windows、UNIXまたはLinuxデータベースにログインします。

  2. 新しいユーザー・アカウントを作成するか、既存のユーザー・アカウントをユーザー・ロール監査で使用できるように指定します。

  3. このユーザーに次の権限を付与します。

    grant select on sysibmadm.authorizationids to user
    grant select on syscat.dbauth to user
    
  4. (オプション)前述の権限を削除する必要がある場合には、付与した権限を取り消すか、IBM DB2データベースからユーザー・アカウントを削除します。

Database FirewallでのURAの有効化

ユーザー・ロール監査を有効にする手順は、次のとおりです。

  1. スタンドアロンDatabase FirewallまたはManagement Server管理コンソールにログインします。

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

  2. 「Monitoring」ページの「Enforcement Points」メニューで、「List」をクリックします。

  3. ユーザー・ロールを監視する強制ポイントを選択し、「Settings」ボタンをクリックします。

    すべての強制ポイントは、指定されたデータベース・サーバーに対するSQLトラフィックも監視します。必要に応じて、強制ポイントは異なるサーバーにあるデータベース内のユーザー・ロールを監視できます。

  4. 「URA」チェック・ボックスを選択します。

    image059.gifの説明が続きます
    image059.gifの説明

  5. URAの各フィールドとオプションを入力します。

    • Database AddressPort: 監査対象データベースが格納されているサーバーのIPアドレスを指定します。ポート番号については、データベースで使用するポート番号を入力します。(たとえば、Oracleデータベースのデフォルトのポート番号は1521です。Oracleデータベースについては、この情報はtnsnames.oraファイルで見つけることができます。)監査では、サーバー上のすべてのデータベースが対象になります。ドメイン・ネーム・サーバー(DNS)を使用している場合は、IPアドレスのかわりに、ホスト名を入力できます。

      強制ポイントで指定されている保護対象データベースのIPアドレスは、監査には自動的に含まれません。

    • Database Name: データベースの名前。Oracleデータベースについては、tnsnames.oraファイルに定義されているサービス名を入力します。

    • User Name: 「URAに対するユーザー権限の設定」の説明に従って、スクリプトで作成したユーザーのユーザー名を入力します。

    • Change Password: ユーザーのパスワードを変更する場合は、「Change Password」ボタンをクリックして、新しいパスワードを入力します。(このフィールドが表示されるのは、既存の構成を編集している場合のみです。ユーザー・ロール監査を最初に構成するときは、「Password」フィールドと「Confirm Password」フィールドが表示されます。)

    • Database Connection (Test Now): 「Test Now」をクリックすると、指定したユーザーがデータベースにログインし、必要な権限が付与されるかが確認されます。

    • First Run TimeRepeat Every: 最初の監査を実行する日時および監査を繰り返す頻度を指定します。データベースの使用が少ない時間(午前2時など)を選択します。

      監査を即時に実行する場合は、「Enforcement Points」メニューで「List」をクリックし、該当する強制ポイントの「Manage」ボタンをクリックし、続いて「Run Now」をクリックします。

URAの無効化

ユーザー・ロール監査を無効にできます。ユーザー・ロール監査を完全に削除する場合は、『Oracle Database Firewallインストレーション・ガイド』を参照してください。

ユーザー・ロール監査を無効にする手順は、次のとおりです。

  1. スタンドアロンDatabase FirewallまたはManagement Server管理コンソールにログインします。

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

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

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

  3. ユーザー・ロール監査を無効にする強制ポイントを検索します。

  4. 「Settings」ボタンをクリックします。

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

  5. 「URA」領域で、「Activate User Role Auditing」チェック・ボックスの選択を解除します。

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