ヘッダーをスキップ
Oracle Enterprise Manager拡張ガイド
10gリリース5(10.2.0.5)
B54134-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

8 ポリシーの定義

Enterprise Managerには、即時利用可能な多数のポリシーが用意されていますが、必要に応じて、独自の監視ニーズを満たす追加のポリシーを定義できます。Enterprise Managerでは、MGMT_USER_DEFINED_POLICYパッケージという形でこの機能を提供しています。

MGMT_USER_DEFINED_POLICYパッケージを使用すると、ポリシーの作成と削除、およびターゲットへのポリシーの追加およびターゲットからのポリシーの削除を行えます。


関連項目:

  • 『Oracle Database概要』(パッケージ、SQLおよびPL/SQLの詳細)

  • 『Oracle Enterprise Manager概要』(ポリシーの詳細)


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


注意:

この章の内容は、PL/SQLパッケージおよびEnterprise Managerポリシーに精通しているユーザーを対象としています。

概要

ポリシーは、システムに要求される動作を定義するもので、1つ以上のターゲットまたはグループに関連付けられます。ポリシー・ルールは、条件に対してターゲットからの値をテストする条件式です。たとえば、データベース・プロファイル制限が適切に設定されていることを検証します。

ポリシーはOracle Management Repositoryに対して実行された問合せから取得したデータをテストします。管理対象ターゲットが実際には要求された状態と一致すると判断された場合、つまり、ポリシーのテストによって違反が特定されなかった場合、ポリシーはコンプライアンスであるとみなされます。反対に、1つ以上のポリシー違反があった場合は、ポリシーは非コンプライアンスであるとみなされます。

Enterprise Managerには、即時利用可能なポリシーの拡張機能として、サブプログラムのコンテキストでユーザー定義ポリシーをサポートするMGMT_USER_DEFINED_POLICYパッケージが用意されています。

これらのサブプログラムを使用するには、SQL*Plusを使用して、管理リポジトリ所有者として管理リポジトリ・データベースに接続します。デフォルトの管理リポジトリ所有者はSYSMANです。

MGMT_USER_DEFINED_POLICYパッケージ

MGMT_USER_DEFINED_POLICYパッケージは次のサブプログラムで構成されます。

サブプログラム 説明
CREATE_POLICY ユーザー定義ポリシーを作成します。
DELETE_POLICY ユーザー定義ポリシーを削除します。
ADD_POLICY_TO_TARGET 既存のターゲットにポリシーを追加します。
REMOVE_POLICY_FROM_TARGET 既存のターゲットからポリシーを削除します。

次に、サブプログラムで使用される定数およびデータ型について説明します。

定数

MGMT_USER_DEFINED_POLICYパッケージによって定義される定数を次に示します。これらの定数は、指定されたサブプログラムをコールする際に使用できます。表8-1を参照してください。

表8-1 MGMT_USER_DEFINED_POLICYパッケージで使用される定数

定数 説明

カテゴリ

タイプの異なるポリシー

G_CATEGORY_FAULT

コンポーネントの機能停止、または一部のコンポーネントやユーザーが処理を正常に実行できないことを示すエラーの発生(たとえばデータベースの停止)

G_CATEGORY_WORKLOAD_VOL

ユーザー数またはシステムに対して実行されるバッチ・ジョブ数に比例して発生するシステム上のワークロード(たとえばユーザー・コール数)

G_CATEGORY_WORKLOAD_TYPE

需要とは無関係の、システム上のワークロードのタイプ(たとえばCPU使用率)

G_CATEGORY_PERFORMANCE

システムのパフォーマンス(たとえばレスポンス時間)

G_CATEGORY_CAPACITY

固定リソースの使用量(たとえば表領域の使用量)

G_CATEGORY_CONFIGURATION

推奨されるベスト・プラクティスの構成に反するターゲットの構成(たとえば制御ファイル数の不足)

G_CATEGORY_SECURITY

セキュリティの設定および問題(たとえばオープン・ポート)

G_CATEGORY_STORAGE

記憶域(たとえば永続表領域および一時表領域)

G_CATEGORY_UNCLASSIFIED

ポリシーが特定のカテゴリに分類されない場合に使用するデフォルト・カテゴリ

違反の重大度レベル

違反の深刻度

G_SEVERITY_INFORMATIONAL

違反の事実を提供します。

G_SEVERITY_WARNING

違反に適時に対応しないと深刻な結果につながることを警告します。

G_SEVERITY_CRITICAL

違反にすぐに対処するように要求します。

パラメータ・データ型

ポリシー関連のパラメータのデータ型

G_PARAM_TYPE_NUMBER

Number

G_PARAM_TYPE_STRING

String

ターゲット・タイプ

Enterprise Managerで監視されるエンティティ

G_HOST_TARGET_TYPE

ホスト

G_DATABASE_TARGET_TYPE

Oracleデータベース・インスタンス

G_LISTENER_TARGET_TYPE

Oracleリスナー

G_CLUSTER_TARGET_TYPE

独立したサーバーのグループ

G_RAC_DATABASE_TARGET_TYPE

Real Application Cluster(RAC)データベース・インスタンス

G_REDUNDANCY_GROUP_TARGET_TYPE

1つのユニットとして一括で機能する同じタイプのメンバーを含むグループ

G_COMPOSITE_TARGET_TYPE

ある目的(たとえばビジネス機能)のためにグループ化された多数のターゲット

G_HOST_GROUP_TARGET_TYPE

多数のホストで構成されるグループ

G_DATABASE_GROUP_TARGET_TYPE

多数のOracleデータベース・インスタンスで構成されるグループ

G_IAS_TARGET_TYPE

Oracle Application Server

G_WEBSITE_TARGET_TYPE

Webアプリケーション

G_FORMSAPP_TARGET_TYPE

Oracle Forms

G_HTTP_SERVER_TARGET_TYPE

Oracle HTTP Server

G_WEBCACHE_TARGET_TYPE

OracleAS Web Cache

G_OC4J_TARGET_TYPE

Oracle Application Server Containers for J2EE

G_BC4J_TARGET_TYPE

ADF Business Components for Java

G_LDAP_TARGET_TYPE

Lightweight Directory Access Protocol(LDAP)

G_PORTAL_TARGET_TYPE

OracleAS Portal

G_APPLICATION_TARGET_TYPE

Oracleアプリケーション

G_APPS_SYSTEM_TARGET_TYPE

Oracleアプリケーション・システム

G_ASM_TARGET_TYPE

自動ストレージ管理

条件演算子

監視対象メトリック値の比較対象境界値であるしきい値を操作する際に使用します。

G_THRESHOLD_EQ

等しい(=)

G_THRESHOLD_LT

より小さい(<)

G_THRESHOLD_GT

より大きい(>)

G_THRESHOLD_LE

以下(< =)

G_THRESHOLD_GE

以上(> =)

G_THRESHOLD_NE

等しくない(

G_THRESHOLD_CONTAINS

部分一致

G_THRESHOLD_MATCH

完全一致


データ型

MGMT_USER_DEFINED_POLICYサブプログラムでは、表8-2に示すデータ型が使用されます。

表8-2 MGMT_USER_DEFINED_POLICYパッケージで使用されるデータ型

説明

UDP_PARAMETERS

ユーザー定義ポリシー(UDP)で使用されるパラメータの集まりを表します。

UDP_PARAMETER

単一のパラメータを表します。


ユーザー定義ポリシーを作成する際には、UDP_PARAMETERSオブジェクトを使用してパラメータ情報が渡されます。

UDP_PARAMETERS型およびUDP_PARAMETER型

これらのPL/SQLタイプを使用して、ユーザー定義ポリシーで使用されるパラメータのリストを表します。

構文

TYPE UDP_PARAMETER IS RECORD
(
     param_name          VARCHAR2(64),
     param_type          NUMBER(1),
     threshold_value     VARCHARS(4000)
);

TYPE UDP_PARAMETERS IS TABLE of UDP_PARAMETER;

パラメータ

パラメータ 説明
param_name 作成するパラメータの名前
param_type パラメータのタイプ

次に例を示します。


G_PARAM_TYPE_NUMBER
G_PARAM_TYPE_STRING
threshold_value パラメータのデフォルト値

ユーザー定義ポリシーの作成

ユーザー定義ポリシーの作成手順の一部として、テストする情報を管理リポジトリから抽出するためのSQLを指定します。Enterprise Managerには、ベース表から読み取らずに管理リポジトリからデータを安全に抽出するために使用できる管理ビューが用意されています。

管理リポジトリ・ビューを使用すると、次の利点があります。

管理リポジトリ・ビューの完全なリストは、第9章「管理リポジトリ・ビュー」に記載されています。

CREATE_POLICYプロシージャ

CREATE_POLICYプロシージャは、ユーザー定義ポリシーを作成します。ポリシーの一部として、次のものを識別する必要があります。

スクリプトが実行されると、ポリシーは自動的にポリシー・ライブラリ格納され、表示可能になります。

CREATE_POLICYプロシージャでサポートされるテスト

次のタイプのテストがCREATE_POLICYプロシージャでサポートされます。

次の構文は、ポリシーの作成に使用されるプロシージャを示しています。ポリシーが作成されなかった場合は、RAISE_APPLICATION_ERRORプロシージャを使用してエラー・メッセージが表示されます。エラー番号およびメッセージは、Oracleエラーのように、処理のためにトラップできます。

構文

しきい値条件または単純条件

PROCEDURE create_policy
(
    p_policy_name           IN VARCHAR2,
    p_target_type           IN VARCHAR2,
    p_sql_text              IN VARCHAR2,
    p_column_name           IN VARCHAR2,
    p_test_operator         IN VARCHAR2,
    p_threshold_value       IN VARCHAR2,
    p_threshold_data_type   IN NUMBER       DEFAULT G_PARAM_TYPE_NUMBER,
    p_num_keys              IN NUMBER       DEFAULT 1,
    p_description           IN VARCHAR2     DEFAULT ' ',
    p_impact                IN VARCHAR2     DEFAULT ' ',
    p_recommendation        IN VARCHAR2     DEFAULT ' ',
    p_severity_level        IN NUMBER       DEFAULT G_SEVERITY_INFORMATIONAL,
    p_category              IN VARCHAR2     DEFAULT G_CATEGORY_UNCLASSIFIED,
    p_url_link              IN VARCHAR2     DEFAULT NULL,
    p_violation_message     IN VARCHAR2     DEFAULT NULL,
    p_clear_message         IN VARCHAR2     DEFAULT NULL,
    p_eval_interval         IN NUMBER       DEFAULT 24
);

SQL式

PROCEDURE create_policy
(
    p_policy_name           IN VARCHAR2,
    p_target_type           IN VARCHAR2,
    p_sql_text              IN VARCHAR2,
    p_test                  IN VARCHAR2,
    p_parameters            IN UDP_PARAMETERS  DEFAULT NULL,
    p_num_keys              IN NUMBER          DEFAULT 1,
    p_description           IN VARCHAR2        DEFAULT ' ',
    p_impact                IN VARCHAR2        DEFAULT ' ',
    p_recommendation        IN VARCHAR2        DEFAULT ' ',
    p_severity_level        IN NUMBER          DEFAULT G_SEVERITY_INFORMATIONAL,
    p_category              IN VARCHAR2        DEFAULT G_CATEGORY_UNCLASSIFIED,
    p_url_link              IN VARCHAR2        DEFAULT NULL,
    p_violation_message     IN VARCHAR2        DEFAULT NULL,
    p_clear_message         IN VARCHAR2        DEFAULT NULL,
    p_eval_interval         IN NUMBER          DEFAULT 24
);

パラメータ

パラメータ 説明
p_policy_name 作成するポリシーの名前
p_target_type このポリシーが適用されるターゲットのタイプ

次に例を示します。


G_HOST_TARGET_TYPE(ホスト)
G_DATABASE_TARGET_TYPE(Oracleデータベース・インスタンス)
p_sql_text テストするデータを管理リポジトリから取得するためのSQL

指定するSQLは、次の要件を満たす必要があります。

  • 選択した最初のn列(nはp_num_keysと等しい)は、行を一意に識別するために使用される列です。SQL問合せは、同じキーを使用して複数の行を戻すことはできません。さらに、キー列の1つはTARGET_GUIDという名前の列であり、この列にターゲットのターゲットGUIDが含まれ、この列にポリシー違反が関連付けられている必要があります。

  • 選択した残りの列(最低1つは必要)は、後でポリシーのテストによってテストされる値を戻します。

p_column_name p_threshold_valueの比較対象となる、選択したリストの列の名前
p_test_operator 実行する比較のタイプ。有効な値は次のとおりです。
G_THRESHOLD_EQ
G_THRESHOLD_NE
G_THRESHOLD_LT
G_THRESHOLD_LE
G_THRESHOLD_GT
G_THRESHOLD_GE
G_THRESHOLD_CONTAINS
G_THRESHOLD_MATCH
p_threshold_value 比較の実行対象となる値
p_threshold_data_type しきい値のデータ型。有効な値は次のとおりです。
G_PARAM_TYPE_NUMBER
G_PARAM_TYPE_STRING
p_test ポリシー違反を特定するためにp_sql_textによって戻された行に適用するテスト。このテストには任意の有効なSQL式を使用できます。また、p_sql_textからの選択リストの列またはp_parametersで指定したパラメータ、もしくはその両方を参照できます。列の選択リストの列またはパラメータを参照するには、名前の接頭辞としてコロン(:)を使用します。
p_parameters ポリシーを評価する際に使用するパラメータのリストおよびデフォルト値を含むタプル
p_num_keys キー列である選択リストの列、つまりp_sql_textによって戻された行を一意に識別する列の数
p_description ポリシーを説明するテキストが含まれます。
p_impact このポリシーが重要である理由を示すテキストを提供します。
p_recommendation ターゲットにポリシーのコンプライアンスを回復させる方法についての情報が含まれます。
p_severity_level 違反の重大度レベル。有効な値は次のとおりです。
G_SEVERITY_INFORMATIONAL
G_SEVERITY_WARNING
G_SEVERITY_CRITICAL
p_category ポリシーのカテゴリ。有効な値は次のとおりです。
G_CATEGORY_FAULT
G_CATEGORY_WORKLOAD_VOL
G_CATEGORY_WORKLOAD_TYPE
G_CATEGORY_PERFORMANCE
G_CATEGORY_CAPACITY
G_CATEGORY_CONFIGURATION
G_CATEGORY_SECURITY
G_CATEGORY_STORAGE
G_CATEGORY_UNCLASSIFIED
p_url_link このポリシーに関する追加の詳細情報に使用するURL
p_violation_message 違反とともに記録されるメッセージ。電子メールやページングなど、新しい違反を検出した結果として発生する通知に使用されます。このメッセージは、p_sql_textからの選択リストの列またはp_parametersで指定したパラメータ、もしくはその両方を参照できます。列の選択リストの列またはパラメータを参照するには、名前をパーセント記号(%)で囲みます。
p_clear_message 違反をクリアすると記録されるメッセージ。電子メールやページングなど、新しい違反を検出した結果として発生する通知に使用されます。このメッセージは、p_sql_textからの選択リストの列またはp_parametersで指定したパラメータ、もしくはその両方を参照できます。列の選択リストの列またはパラメータを参照するには、名前をパーセント記号(%)で囲みます。
p_eval_interval 評価間隔の式(時間数)

これらの例は、ポリシーの作成方法を示しています。

例8-1 十分な制御ファイルのしきい値

DECLARE
  l_sql         VARCHAR2(2000);
BEGIN
  l_sql := 'SELECT target_guid, control_file_count ' ||
               'FROM ' ||
                 '(SELECT target_guid, COUNT(file_name) control_file_count ' ||
                 'FROM mgmt$db_controlfiles ' ||
                 'GROUP BY target_guid)';
  MGMT_USER_DEFINED_POLICY.CREATE_POLICY
  (
    p_policy_name          => 'Insufficient Control Files',
    p_target_type          => mgmt_user_defined_policy.G_DATABASE_TARGET_TYPE,
    p_sql_text             => l_sql,
    p_column_name          => 'control_file_count',
    p_test_operator        => mgmt_user_defined_policy.G_THRESHOLD_LT,
    p_threshold_value      => 2,
    p_threshold_data_type  => mgmt_user_defined_policy.G_PARAM_TYPE_NUMBER,
    p_num_keys             => 1,       -- target_guid is key column
    p_description          => 'Ensures sufficient control files',
    p_impact         => 'The control file is one of the most important files '||
                        'in an Oracle database. It maintains many physical ' ||
                        'characteristics and important recovery information ' ||
                        'about the database. If you lose the only copy of the ' ||
                        'control file due to a media error, there will be ' ||
                        'unnecessary down time and other risks.'
    p_recommendation       => 'Use at least two control files that are ' ||
                              'multiplexed on different disks.',
    p_severity_level       => mgmt_user_defined_policy.G_SEVERITY_CRITICAL,
    p_category             => mgmt_user_defined_policy.G_CATEGORY_CONFIGURATION,
    p_violation_message    => 'Insufficient control files: %control_file_count%',
    p_clear_message        => 'Sufficient control files'
 );
COMMIT;
END;
/

例8-2 UDPパラメータを使用した十分な制御ファイル

DECLARE
  l_sql         VARCHAR2(2000);
  l_test        VARCHAR2(2000);
  l_parameters  mgmt_user_defined_policy.udp_parameters;
BEGIN
  l_sql := 'SELECT target_guid, control_file_count ' ||
           'FROM ' ||
             '(SELECT target_guid, COUNT(file_name) control_file_count ' ||
             'FROM mgmt$db_controlfiles ' ||
             'GROUP BY target_guid)';

  l_test := ':control_file_count < :min_control_file_count';

  l_parameters := mgmt_user_defined_policy.udp_parameters();
  l_parameters.extend(1);
  l_parameters(1).param_name := 'min_control_file_count';
  l_parameters(1).param_type := mgmt_user_defined_policy.G_PARAM_TYPE_NUMBER;
  l_parameters(1).threshold_value :=2;

  MGMT_USER_DEFINED_POLICY.CREATE_POLICY
  (
    p_policy_name    => 'Insufficient Control Files',
    p_target_type    => mgmt_user_defined_policy.G_DATABASE_TARGET_TYPE,
    p_sql_text       => l_sql,
    p_test           => l_test,
    p_parameters     => l_parameters,
    p_num_keys       => 1,   -- target_guid is key column
    p_description    => 'Ensures sufficient control files',
    p_impact         => 'The control file is one of the most important files ' ||
                        'in an Oracle database. It maintains many physical ' ||
                        'characteristics and important recovery information ' ||
                        'about the database. If you lose the only copy of the ' ||
                        'control file due to a media error, there will be ' ||
                        'unnecessary down time and other risks.',
    p_recommendation      => 'Use at least two control files that are ' ||
                             'multiplexed on different disks.',
    p_severity_level      => mgmt_user_defined_policy.G_SEVERITY_CRITICAL,
    p_category            => mgmt_user_defined_policy.G_CATEGORY_CONFIGURATION,
    p_violation_message   => 'Insufficient control files: %control_file_count%',
    p_clear_message       => 'Sufficient control files'
  );
  COMMIT;
END;
/

例8-3 データ・ディクショナリ保護のSQL式

DECLARE
  l_sql   VARCHAR2(2000);
  l_test  VARCHAR2(2000);
BEGIN
  l_sql := 'SELECT target_guid, name, value ' ||
               'FROM mgmt$db_init_params ' ||
               'WHERE name =''O7_DICTIONARY_ACCESSIBILITY''';
  l_test := 'UPPER(NVL(:value, ''TRUE'')) = ''TRUE''';
 MGMT_USER_DEFINED_POLICY.CREATE_POLICY
 (
    p_policy_name      => 'Data Dictionary Protected',
    p_target_type      => mgmt_user_defined_policy.G_DATABASE_TARGET_TYPE,
    p_sql_text         => l_sql,
    p_test             => l_test,
    p_num_keys         => 1,      -- target_guid is key column
    p_description      => 'Ensures data dictionary protection is enabled',
    p_impact           => 'Setting the 07_DICTIONARY_ACCESSIBILITY to TRUE ' ||
                          'allows users with ANY system privileges to access ' ||
                          'the data dictionary.  As a result, these user ' ||
                          'accounts can be exploited to gain unauthorized ' ||
                          'access to data. Instead the data dictionary should ' ||
                          'be protected such that only those authorized users ' ||
                          'making DBA-privileged connections can use the ANY ' ||
                          'system privilege to access the data dictionary.',
    p_recommendation       => 'Set O7_DICTIONARY_ACCESSIBILITY to TRUE',
    p_severity_level       => mgmt_user_defined_policy.G_SEVERITY_CRITICAL,
    p_category             => mgmt_user_defined_policy.G_CATEGORY_SECURITY,
    p_violation_message    => 'Data dictionary is not protected',
    p_clear_message        => 'Data dictionary is protected',
    p_eval_interval        => 12
 );
 COMMIT;
END;
/

既存のターゲットへのユーザー定義ポリシーの追加

ユーザー定義ポリシーを既存のターゲットに追加する方法は多数あります。次のような方法があります。

「メトリックとポリシー設定」UIの使用方法

ユーザー定義のポリシーを既存のターゲットに迅速に追加するには、「メトリックとポリシー設定」UIページを使用します。

  1. Grid Controlのホームページで「ターゲット」タグをクリックします。

  2. 結果ページで、ユーザー定義ポリシーを追加するターゲットのターゲット・タイプをクリックします。

  3. ユーザー定義ポリシーを追加するターゲットの名前を選択します。

  4. ターゲットの「ホーム」結果ページで「関連リンク」セクションまでスクロールし、「メトリックとポリシー設定」をクリックします。

  5. 「ポリシー」サブタブを選択して「ポリシーの追加」をクリックします。

  6. ポリシー・ライブラリから追加するポリシー・ルールを選択して「続行」をクリックします。

  7. 確認ページで「はい」をクリックして、ターゲットにポリシー・ルールを追加します。さらに、「ポリシー」ページで「OK」をクリックします。これを行わないと変更が有効になりません。

PL/SQLプロシージャの使用方法

次のプロシージャは、既存のユーザー定義ポリシーを管理リポジトリにすでに存在するターゲットに関連付けます。この関連が作成されなかった場合は、RAISE_APPLICATION_ERRORプロシージャを使用してエラー・メッセージが表示されます。エラー番号およびメッセージは、Oracleエラーのように、処理のためにトラップできます。

構文

PROCEDURE add_policy_to_target
(
    p_policy_name       IN VARCHAR2,
    p_target_type       IN VARCHAR2,
    p_target_name       IN VARCHAR2
);

パラメータ

パラメータ 説明
p_policy_name 追加するポリシーの名前
p_target_type このポリシーが適用されるターゲットのタイプ

次に例を示します。


G_HOST_TARGET_TYPE(ホスト)
G_DATABASE_TARGET_TYPE(Oracleデータベース・インスタンス)
p_target_name ターゲットの名前

これらの例は、ターゲットにポリシーを追加する方法を示しています。

例8-4 1つのターゲットへのポリシーの追加

BEGIN
  MGMT_USER_DEFINED_POLICY.ADD_POLICY_TO_TARGET
  (
    p_policy_name     => 'Insufficient Control Files',
    p_target_type     => mgmt_user_defined_policy.G_DATABASE_TARGET_TYPE,
    p_target_name     => 'Finance'
  );
COMMIT;
END;
/

例8-5 既存のすべてのターゲットへのポリシーの追加

DECLARE
  l_target_names   MGMT_MEDIUM_STRING_ARRAY;
BEGIN
 SELECT target_name BULK COLLECT INTO l_target_names
 FROM mgmt$target
 WHERE target_type = mgmt_user_defined_policy.G_DATABASE _TARGET_TYPE;

 IF (l_target_names IS NOT NULL) and (l_target_names.COUNT > 0)
 THEN
   FOR i in 1..l_target_names.COUNT LOOP
     mgmt_user_defined_policy.add_policy_to_target
      (
        p_policy_name  => 'Insufficient Control Files',
        p_target_type  => mgmt_user_defined_policy.G_DATABASE_TARGET_TYPE,
        p_target_name  => l_target_names(i)
      );
   END LOOP;
   COMMIT;
 END IF;

END;
/

監視テンプレートの使用方法

既存のターゲットにユーザー定義ポリシーを追加するもう1つの方法は、次のとおりです。

  1. 監視テンプレートを作成します。

  2. ユーザー定義ポリシーを監視テンプレートに追加します。

  3. 監視テンプレートをターゲットに適用します。

ユーザー定義ポリシーの削除

このプロシージャは、既存のユーザー定義ポリシーを削除します。ユーザー定義ポリシーの削除の一部として、次の処理が行われます。

ポリシーが削除されなかった場合は、RAISE_APPLICATION_ERRORプロシージャを使用してエラー・メッセージが表示されます。エラー番号およびメッセージは、Oracleエラーのように、処理のためにトラップできます。

管理リポジトリ所有者には、ポリシーを削除する権限があります。

構文

PROCEDURE delete_policy(    p_policy_name           IN VARCHAR2,    p_target_type           IN VARCHAR2);

パラメータ

パラメータ 説明
p_policy_name 削除するポリシーの名前
p_target_type このポリシーが適用されるターゲットのタイプ

次に例を示します。


G_HOST_TARGET_TYPE(ホスト)
G_DATABASE_TARGET_TYPE(Oracleデータベース・インスタンス)

次の例は、ポリシーの削除方法を示しています。

例8-6 ユーザー定義ポリシーの削除

BEGIN
   MGMT_USER_DEFINED_POLICY.DELETE_POLICY
   (
       p_policy_name  => 'Insufficient Control Files',
       p_target_type  => mgmt_user_defined_policy.G_DATABASE_TARGET_TYPE
    );
COMMIT;
END;
/

既存のターゲットからのユーザー定義ポリシーの削除

ユーザー定義ポリシーを既存のターゲットから削除する方法は2つあります。

「メトリックとポリシー設定」UIの使用方法

ユーザー定義のポリシーを既存のターゲットから迅速に削除するには、「メトリックとポリシー設定」UIページを使用します。

  1. Grid Controlのホームページで「ターゲット」タグをクリックします。

  2. 結果ページで、ユーザー定義ポリシーを削除するターゲットのターゲット・タイプをクリックします。

  3. ユーザー定義ポリシーを削除するターゲットの名前を選択します。

  4. ターゲットの「ホーム」結果ページで「関連リンク」セクションまでスクロールし、「メトリックとポリシー設定」をクリックします。

  5. 「ポリシー」サブタブを選択して「削除」をクリックします。

  6. 削除するポリシー・ルールを選択して「続行」をクリックします。

  7. 確認ページで「はい」をクリックして、ターゲットからポリシー・ルールを削除します。さらに、「ポリシー」ページで「OK」をクリックします。これを行わないと変更が有効になりません。

PL/SQLプロシージャの使用方法

次のプロシージャは、既存のユーザー定義ポリシーを管理リポジトリに存在するターゲットから削除するために使用されます。関連が削除されなかった場合は、RAISE_APPLICATION_ERRORプロシージャを使用してエラー・メッセージが表示されます。エラー番号およびメッセージは、Oracleエラーのように、処理のためにトラップできます。

構文

PROCEDURE remove_policy_from_target
(
    p_policy_name           IN VARCHAR2,
    p_target_type           IN VARCHAR2,
    p_target_name           IN VARCHAR2
);

パラメータ

パラメータ 説明
p_policy_name 削除するポリシーの名前
p_target_type このポリシーが適用されるターゲットのタイプ

次に例を示します。


G_HOST_TARGET_TYPE(ホスト)
G_DATABASE_TARGET_TYPE(Oracleデータベース・インスタンス)
p_target_name ターゲットの名前

次の例は、ユーザー定義ポリシーを既存のターゲットから削除する方法を示しています。

例8-7 既存のターゲットからのポリシーの削除

BEGIN
  MGMT_USER_DEFINED_POLICY.REMOVE_POLICY_FROM_TARGET
  (
    p_policy_name        => 'Insufficient Control Files',
    p_target_type        => mgmt_user_defined_policy.G_DATABASE_TARGET_TYPE,
    p_target_name        => 'Finance'
  );
 COMMIT;
END;
/