3 Oracle GoldenGate資格証明の確立

データベースと対話するプロセス用のデータベース・ユーザーを作成し、適切な権限を割り当てて、不正な使用から資格証明を保護する方法について学習します。

トピック

Oracle GoldenGateへの資格証明の割当て

Oracle GoldenGateプロセスでは、データベース・バージョン、データベース構成、および使用しているOracle GoldenGate機能の適切なデータベース権限が含まれるデータベース資格証明が1つ以上必要です。

ソースおよびターゲットのデータベース・インスタンスに、それぞれOracle GoldenGate専用となるユーザーを作成します。割り当てられたユーザーには、ソースまたはターゲットのOracle Databaseに接続するすべてのOracle GoldenGateプロセス用の同じユーザーを使用できます。

資格証明ストアの作成および使用について学習するには、「資格証明ストアの作成および移入」を参照してください。

Oracle GoldenGateユーザー(データベース)

Oracle GoldenGateのDDLサポートを使用している場合は、MAのService ManagerまたはCAのManagerプロセスのソース・データベースにユーザーが必要となります。このユーザーは、DDLキャプチャをサポートするOracle GoldenGateデータベース・オブジェクトでメンテナンスを実行します。

DEFGENユーティリティでは、ソースまたはターゲット・データベースにユーザーが必要です。場所は、データ定義ファイルが生成される場所によって異なります。このユーザーは、ローカル・メタデータの問合せを行い、リモートOracle GoldenGateインスタンスにメタデータを提供するデータ定義ファイルを作成します。

Extractがクラシック・キャプチャ・モードで実行される場合、次の機能を使用するには追加のユーザーまたは権限が必要な場合があります。

適切なユーザー権限の付与

Oracle GoldenGateに必要なユーザー権限は、データベース・バージョンおよびExtractまたはReplicatプロセスのモードによって異なります。プロセス・モードの詳細は、「キャプチャおよび適用モードの選択」を参照してください。

Oracle Database権限
次の権限は、Oracleデータベースに適用されます。
権限 Extract Replicat全モード 目的

CREATE SESSION

なし

なし

データベースに接続

CREATE VIEW

なし

なし

ハートビート表ビューを追加するために必要です。

RESOURCE

なし

なし

オブジェクトを作成。

Oracle Database 12cR1以降では、RESOURCEのかわりに次の権限を付与します。

ALTER USER user QUOTA {size | UNLIMITED} ON tablespace;

ALTER SYSTEM

なし

なし

ロギングの有効化などの管理変更を実行

ALTER USER

なし

なし

マルチテナント・アーキテクチャに必要であり、GGADMINは有効なOracle GoldenGate管理者スキーマである必要があります。

EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE ('REPUSER', CONTAINER=>'PDB1');

あり あり

これは、自律型データベース(ATPおよびADW)のExtractおよびReplicatに必要です。ルート・コンテナ(CDB$ROOT)のEXTRACTには、ALLの値または特定のPDBが必要になる場合があります。

DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGEで付与された権限

なし

なし

(Extract)ログマイニング・サーバーを含む、Extractの権限を付与します。

(Replicat)データベース・インバウンド・サーバーを含む、非統合および統合Replicatの両方の権限を付与。

DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGEのオプションの任意またはすべての権限

なし

なし

  • 仮想プライベート・データベースからキャプチャ

  • リダクション済データをキャプチャ

詳細は、「dbms_goldengate_auth.grant_admin_privilegeパッケージについて」を参照してください。

SYSユーザーとして接続した次の権限をExtractおよびReplicatユーザーに付与します。

EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE('ggadmin user','*',GRANT_OPTIONAL_PRIVILEGES=>'*');

GRANT DV_GOLDENGATE_ADMIN, DV_GOLDENGATE_REDO_ACCESS to 'ggadmin user';

なし

なし

Data Vaultからキャプチャ

レルムに適用する場合は、DBMS_MACADM.ADD_AUTH_TO_REALMの権限をReplicatに付与。

Connect as Database Vault owner and execute the following sctipts,

BEGIN

DVSYS.DBMS_MACADM.ADD_AUTH_TO_REALM( REALM_NAME => 'Oracle Default Component Protection Realm',GRANTEE => 'GGADMIN USER',AUTH_OPTIONS => 1) ;

END ;

/

EXECUTE DBMS_MACADM.AUTHORIZE_DDL('SYS', 'SYSTEM');

なし

なし

Data Vaultからキャプチャ

DDLレプリケーションを実行する場合は、次の権限をDatabase Vault所有者として付与します。

EXECUTE DBMS_MACADM.AUTHORIZE_DDL (‘GGADMIN USER', ‘SCHEMA FOR DDL’);

なし

なし

Data Vaultからキャプチャ

ターゲット表のINSERTUPDATEDELETE

該当なし

なし

レプリケートされたDMLをターゲット・オブジェクトに適用

GRANT INSERT ANY TO...GRANT UPDATE ANY TO...およびGRANT DELETE ANY TO...

該当なし

なし

すべての表をレプリケートする場合は、INSERTUPDATEDELETEをすべての表に付与するのではなく、Replicatユーザーに対してこれらの権限を使用します。

ターゲット・オブジェクトのDDL権限(DDLサポートを使用している場合)

該当なし

なし

レプリケートされたDDLをターゲット・オブジェクトに発行

LOCK ANY TABLE

該当なし

なし

ターゲット表をロック。SQL*Loaderへのダイレクト・バルク・ロードを使用する初期ロードのみに必要。

SELECT ANY DICTIONARY

なし なし

ディクショナリ表で適切に機能するためにすべての権限を許可します。

SELECT ANY TRANSACTION

なし

該当なし

新しいOracle ASM APIを使用。

Oracleデータベース・ルート・コンテナに付与される権限のリストの例を次に示します。

DROP USER c##ggadmin CASCADE;
CREATE USER c##ggadmin IDENTIFIED BY passw0rd CONTAINER=all DEFAULT
TABLESPACE GG_DATA TEMPORARY TABLESPACE temp;
ALTER USER c##ggadmin SET CONTAINER_DATA=all CONTAINER=current;
GRANT CREATE SESSION to c##ggadmin;
GRANT CREATE VIEW to c##ggadmin;
GRANT CONNECT to c##ggadmin CONTAINER=all;
GRANT RESOURCE to c##ggadmin;
GRANT ALTER SYSTEM to c##ggadmin ;
GRANT SELECT ANY DICTIONARY to c##ggadmin ;
EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE('c##ggadmin');
ALTER USER c##ggadmin QUOTA unlimited ON GG_DATA;

SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE='c##ggadmin' ORDER BY 2;

この例では、DBA権限は提供されませんが、ユーザーはDBA_SYS_PRIVSパッケージにアクセスできます。

dbms_goldengate_auth.grant_admin_privilegeパッケージについて

ExtractおよびReplicatがクラシックおよび統合モードで動作するために必要なほとんどの権限は、dbms_goldengate_auth.grant_admin_privilegeパッケージを使用して付与されます。

最初の例はデフォルトで、ExtractとReplicatの両方に付与されます。2つ目の例は、ExtractまたはReplicat (この場合はExtract)のいずれかに明示的に付与する方法を示しています。

grant_admin_privilege('ggadm')
grant_admin_privilege('ggadm','capture');

次の例は、Oracle 12c Multitenant DatabaseでのExtractを示しています。

BEGIN  
dbms_goldengate_auth.grant_admin_privilege 
(  grantee => 'C##GGADMIN',  privilege_type => 'CAPTURE',  grant_select_privileges => TRUE,  do_grants => TRUE,  container => 'ALL'  ); 
END;
dbms_goldengate_auth.grant_admin_privilegeのオプションの付与

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

『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』DBMS_GOLDENGATE_AUTHを参照してください

Oracle GoldenGate資格証明の保護

データのセキュリティを確保し、Oracle GoldenGateの処理を正確に監視するため、他のユーザー、アプリケーションまたはプロセスにOracle GoldenGateデータベース・ユーザーとしてのログオンまたは操作を許可しないでください。

Oracle GoldenGateには、Oracle GoldenGateプロセスに割り当てられたログイン資格証明を保護する様々なオプションが用意されています。推奨されるオプションは、資格証明ストアを使用することです。1つの資格証明ストアを作成して、Oracle GoldenGateのすべてのインストールでアクセス可能な共有の場所に格納したり、Oracle GoldenGateがインストールされるシステムごとに個別の資格証明ストアを作成したりできます。

資格証明ストアには、割り当てられている各Oracle GoldenGateユーザーのユーザー名およびパスワードが格納されます。ユーザーIDは1つ以上の別名に関連付けられ、実際のユーザー名またはパスワードではなく、コマンドおよびパラメータ・ファイルで提供される別名です。資格証明ファイルはドメインにパーティション化できるため、別名の標準のセットをプロセスに使用して、各システムの管理者がローカルで管理できます。

資格証明ストアの作成およびユーザー資格証明の追加の詳細は、『Oracle GoldenGate Security Guide』資格証明ストアの作成および移入を参照してください。