73 DBMS_GOLDENGATE_AUTH

DBMS_GOLDENGATE_AUTHパッケージでは、GoldenGate管理者への権限付与およびGoldenGate管理者からの権限取消しを行うためのサブプログラムが提供されます。

この章のトピックは、次のとおりです:

73.1 DBMS_GOLDENGATE_AUTHの概要

このパッケージでは、GoldenGate管理者への権限付与およびGoldenGate管理者からの権限取消しを行うためのサブプログラムが提供されます。GoldenGate管理者は、GoldenGateとXStream Outの統合された構成を管理します。

GoldenGate管理者は、マルチテナント・コンテナ・データベース(CDB)で使用できます。CDBは、ユーザーが作成した0以上のプラガブル・データベース(PDB)を含むOracle Databaseです。

参照:

73.2 DBMS_GOLDENGATE_AUTHのセキュリティ・モデル

このパッケージのセキュリティは、選択したユーザーまたはロールにこのパッケージのEXECUTE権限を付与するか、選択したユーザーまたはロールにEXECUTE_CATALOG_ROLEを付与することで制御できます。

DBMS_GOLDENGATE_AUTHパッケージ内のサブプログラムを実行するユーザーには、SYSDBA管理権限が必要です。またこのユーザーは、接続時にAS SYSDBAを使用してこの権限を実行する必要があります。

パッケージのサブプログラムをストアド・プロシージャ内から実行する場合、そのサブプログラムを実行するユーザーには、パッケージのEXECUTE権限を直接付与する必要があります。ロールを通して付与することはできません。

このパッケージ内のサブプログラムを実行するユーザーが必要な権限を所有するには、このパッケージを使用するときに、ユーザーの作成、権限の付与および表領域の作成を行うことができる管理ユーザーとして接続します。

73.3 DBMS_GOLDENGATE_AUTHサブプログラムの要約

DBMS_XSTREAM_AUTHパッケージには、GRANT_ADMIN_PRIVILEGEプロシージャとREVOKE_ADMIN_PRIVILEGEプロシージャのサブプログラムが含まれます。

表73-1 DBMS_GOLDENGATE_AUTHパッケージのサブプログラム

サブプログラム 説明

GRANT_ADMIN_PRIVILEGEプロシージャ

ユーザーにGoldenGate管理者になるために必要な権限を直接付与するか、またはこれらの権限を付与するスクリプトを生成します。

REVOKE_ADMIN_PRIVILEGEプロシージャ

ユーザーからGoldenGate管理者の権限を直接取り消すか、これらの権限を取り消すスクリプトを生成します。

注意:

特に指定がないかぎり、すべてのサブプログラムがコミットされます。

73.3.1 GRANT_ADMIN_PRIVILEGEプロシージャ

このプロシージャは、ユーザーにGoldenGate管理者になるために必要な権限を付与します。

構文

DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE(
   grantee                    IN  VARCHAR2,
   privilege_type             IN  VARCHAR2  DEFAULT '*',
   grant_select_privileges    IN  BOOLEAN   DEFAULT TRUE,
   do_grants                  IN  BOOLEAN   DEFAULT TRUE,
   file_name                  IN  VARCHAR2  DEFAULT NULL,
   directory_name             IN  VARCHAR2  DEFAULT NULL
   grant_optional_privileges  IN  VARCHAR2  DEFAULT NULL,
   container                  IN  VARCHAR2  DEFAULT 'CURRENT');

パラメータ

表73-2 GRANT_ADMIN_PRIVILEGEプロシージャのパラメータ

パラメータ 説明

grantee

権限を付与するユーザー。

privilege_type

次のいずれかの値を指定します。

  • CAPTURE

    CAPTUREを指定すると、ユーザーにOracle GoldenGate統合抽出を管理するために必要な最低限の権限が付与されます。

  • APPLY

    APPLYを指定すると、ユーザーにOracle GoldenGate統合Replicatを管理するために必要な最低限の権限が付与されます。

  • *

    *を指定すると、ユーザーにOracle GoldenGate統合抽出およびOracle GoldenGate統合Replicatを管理するために必要な最低限の権限が付与されます。

grant_select_privileges

TRUEを指定すると、SELECT_CATALOG_ROLEを含む一連の権限がユーザーに付与されます。この設定は、GoldenGate管理者のために推奨されます。

FALSEを指定すると、一連の権限がユーザーに付与されません。

SELECT_CATALOG_ROLEにより、ユーザーはデータ・ディクショナリから選択できます。

do_grants

TRUEを指定すると、指定した権限受領者に権限が直接付与され、権限受領者はDBA_GOLDENGATE_PRIVILEGESデータ・ディクショナリ・ビューに追加されます。このデータ・ディクショナリ・ビューにユーザーのエントリがすでにある場合、他のエントリは作成されず、エラーも発生しません。TRUEを指定すると、権限付与文が失敗した場合、エラーが発生します。

FALSEを指定すると、指定した権限受領者に権限は直接付与されず、権限受領者はDBA_GOLDENGATE_PRIVILEGESデータ・ディクショナリ・ビューに追加されません。後で実行するファイルをこのプロシージャで生成する場合は、FALSEを指定します。FALSEを指定し、file_nameパラメータまたはdirectory_nameパラメータがNULLの場合、エラーが発生します。

注意: do_grantsTRUEに設定することをお薦めします。これは、多くのAPIがDBA_GOLDENGATE_PRIVILEGESビュー内でユーザーの存在を検査し、do_grantsFALSEに設定されていると、このビューにデータが移入されないためです。

file_name

このプロシージャによって生成されるファイルの名前。ファイルには、権限を付与するすべての文が格納されます。指定したファイル名のファイルが、指定したディレクトリ名にすでに存在する場合、既存のファイルに権限付与文が追加されます。

NULLに設定すると、ファイルは生成されません。

directory_name

生成されたファイルを配置するディレクトリ。指定したディレクトリは、SQL文CREATE DIRECTORYを使用して作成されたディレクトリ・オブジェクトである必要があります。ディレクトリを指定した場合、このプロシージャを起動するユーザーは、ディレクトリ・オブジェクトに対してWRITE権限を持つ必要があります。

file_nameパラメータがNULLの場合、このパラメータは無視され、プロシージャはファイルを生成しません。

file_nameパラメータがNULL以外の場合にNULLに設定すると、エラーが発生します。

grant_optional_privileges

権限受領者に付与するオプションの権限のカンマ区切りリスト。次に示すロールと権限を指定できます。

  • XDBADMIN

  • DV_XSTREAM_ADMIN

  • DV_GOLDENGATE_ADMIN

  • EXEMPT_ACCESS_POLICY

  • EXEMPT_REDACTION_POLICY

container

CURRENTを指定すると、このプロシージャが起動されるコンテナでのみ、権限受領者に権限が付与されます。CURRENTは、ルートまたはPDBに接続している間に指定できます。

ALLを指定すると、このプロシージャの起動後に作成されたCDBのすべてのコンテナおよびすべてのPDBで、権限受領者に権限が付与されます。ALLを指定するには、共通ユーザーがこのプロシージャをルートから起動する必要があります。

コンテナ名を指定すると、指定したコンテナでのみ権限受領者への権限の付与が行われます。ルートを指定するには、ルートへの接続中にCDB$ROOTを使用します。PDBを指定するには、プロシージャをルートから起動する必要があります。

注意: このパラメータは、CDBのみに適用されます。

使用上の注意

このプロシージャを実行するユーザーは他のユーザーに権限を付与できる管理ユーザーである必要があります。

特に、このプロシージャは指定したユーザーに次の権限を付与します。

  • RESTRICTED SESSIONシステム権限。

  • 次のパッケージに対するEXECUTE権限。

    • DBMS_APPLY_ADM

    • DBMS_AQ

    • DBMS_AQADM

    • DBMS_AQIN

    • DBMS_AQELM

    • DBMS_CAPTURE_ADM

    • DBMS_FLASHBACK

    • DBMS_LOCK

    • DBMS_PROPAGATION_ADM

    • DBMS_RULE_ADM

    • DBMS_STREAMS_ADM

    • DBMS_STREAMS_ADVISOR_ADM

    • DBMS_STREAMS_HANDLER_ADM

    • DBMS_STREAMS_MESSAGING

    • DBMS_TRANSFORM

    • DBMS_XSTREAM_ADM

  • キューにメッセージをエンキューし、キューからメッセージをデキューする権限。

  • キューを管理する権限。

  • ユーザー固有のスキーマおよびその他のスキーマの次のタイプのオブジェクトを作成、変更、実行する権限。

    • 評価コンテキスト

    • ルール・セット

    • ルール

    さらに、権限受領者は次の権限を他のユーザーに付与できます。

  • SELECT_CATALOG_ROLE

  • GoldenGateおよびOracle Streamsに関連するデータ・ディクショナリ・ビューに対するSELECTまたはREAD権限。

  • リモートGoldenGate管理者が、権限受領者に接続することによって、データベース・リンクを介して、管理操作を実行できるようにする機能。

    この機能は、このパッケージのGRANT_REMOTE_ADMIN_ACCESSプロシージャを実行することによって可能になります。

    注意:

    このプロシージャは、GoldenGate環境の構成および管理に必要な権限のみを付与します。必要に応じて、追加権限を権限受領者に付与できます。

73.3.2 REVOKE_ADMIN_PRIVILEGEプロシージャ

このプロシージャは、GoldenGateの管理者権限をユーザーから取り消します。

構文

DBMS_GOLDENGATE_AUTH.REVOKE_ADMIN_PRIVILEGE(
   grantee                     IN  VARCHAR2,  
   privilege_type              IN  VARCHAR2  DEFAULT '*',
   revoke_select_privileges    IN  BOOLEAN   DEFAULT FALSE,
   do_revokes                  IN  BOOLEAN   DEFAULT TRUE,
   file_name                   IN  VARCHAR2  DEFAULT NULL,
   directory_name              IN  VARCHAR2  DEFAULT NULL
   revoke_optional_privileges  IN  VARCHAR2  DEFAULT NULL,
   container                   IN  VARCHAR2  DEFAULT 'CURRENT');

パラメータ

表73-3 REVOKE_ADMIN_PRIVILEGEプロシージャのパラメータ

パラメータ 説明

grantee

権限を取り消すユーザー。

privilege_type

次のいずれかの値を指定します。

  • CAPTURE

    CAPTUREを指定すると、Oracle GoldenGate統合抽出を管理するために必要な最低限の権限がユーザーから取り消されます。

  • APPLY

    APPLYを指定すると、Oracle GoldenGate統合Replicatを管理するために必要な最低限の権限がユーザーから取り消されます。

  • *

    *を指定すると、Oracle GoldenGate統合抽出およびOracle GoldenGate統合Replicatを管理するために必要な最低限の権限がユーザーから取り消されます。

revoke_select_privileges

TRUEを指定すると、SELECT_CATALOG_ROLEがユーザーから取り消されます。

FALSEを指定すると、SELECT_CATALOG_ROLEがユーザーから取り消されません。

SELECT_CATALOG_ROLEにより、ユーザーはデータ・ディクショナリから選択できます。

do_revokes

TRUEを指定すると、指定したユーザーから権限が直接取り消され、DBA_XSTREAM_ADMINISTRATORデータ・ディクショナリ・ビューからユーザーが削除されます。このデータ・ディクショナリ・ビューにユーザーのレコードがない場合、ビューからレコードは削除されず、エラーも発生しません。TRUEを指定すると、権限取消し文が失敗した場合、エラーが発生します。取り消そうとしている権限がユーザーに付与されていない場合、権限取消し文は失敗します。

FALSEを指定すると、指定したユーザーの権限は直接取り消されず、DBA_XSTREAM_ADMINISTRATORデータ・ディクショナリ・ビューからユーザーは削除されません。

後で実行するファイルをこのプロシージャで生成する場合は、FALSEを指定します。FALSEに設定すると、file_nameまたはdirectory_nameパラメータのいずれかがNULLの場合、エラーは発生しません。

file_name

このプロシージャによって生成されるファイルの名前。ファイルには、権限を取り消すすべての文が格納されます。指定したファイル名のファイルが指定したディレクトリ名にすでに存在する場合、既存のファイルに権限取消し文が追加されます。

NULLに設定すると、ファイルは生成されません。

directory_name

生成されたファイルを配置するディレクトリ。指定したディレクトリは、SQL文CREATE DIRECTORYを使用して作成されたディレクトリ・オブジェクトである必要があります。ディレクトリを指定した場合、このプロシージャを起動するユーザーは、ディレクトリ・オブジェクトに対してWRITE権限を持つ必要があります。

file_nameパラメータがNULLの場合、このパラメータは無視され、ファイルは生成されません。

file_nameパラメータがNULL以外の場合にNULLに設定すると、エラーが発生します。

revoke_optional_privileges

DV_XSTREAM_ADMIN権限やDV_GOLDENGATE_ADMIN権限など、権限受領者から取り消すオプション権限のカンマ区切りのリスト。

container

CURRENTを指定すると、このプロシージャが起動されるコンテナでのみ、権限受領者から権限が取り消されます。CURRENTは、ルートまたはPDBに接続している間に指定できます。

ALLを指定すると、CDBのすべてのコンテナで、権限受領者から権限が取り消されます。ALLを指定するには、このプロシージャをルートから起動する必要があります。

コンテナ名を指定すると、指定したコンテナでのみ権限受領者の権限が取り消されます。ルートを指定するには、ルートへの接続中にCDB$ROOTを使用します。PDBを指定するには、プロシージャをルートから起動する必要があります。

注意: このパラメータは、CDBのみに適用されます。

使用上の注意

このプロシージャを実行するユーザーは他のユーザーから権限を取り消せる管理ユーザーである必要があります。特に、このプロシージャは、このパッケージのGRANT_ADMIN_PRIVILEGEプロシージャを実行して付与された権限を取り消します。