DBMotoレプリケーションに必要なOracle 12c(PDB/CDB)権限


マルチテナント用Oracle 12cをDBMotoで使用する場合は、PDBとCDBユーザそれぞれに必要な権限が異なります。詳細は下記の通りです。
PDBユーザ名を「dbmotoP」、CDBユーザを「c##dbmotoC」とした場合の例となります。
2019/06/10 一部修正しました

マルチテナントではないPDBなしのOracle 12cに必要な権限は下記をご参照ください。
DBMotoレプリケーションに必要なOracleユーザ権限

●ミラーリング複製元ソース用

◇PDBユーザ
// ユーザ作成
create user dbmotoP identified by dbmotoP;

// DB接続オープン
grant create session to dbmotoP;

// 参照権限
grant select any table to dbmotoP;

// サプリメンタルロギング設定時の必要権限
grant alter database to dbmotoP;
grant execute on sys.dbms_logmnr_d to dbmotoP;
grant select on sys.v_$parameter to dbmotoP;
grant select on sys.v_$log to dbmotoP;
grant select on sys.v_$logfile to dbmotoP;
grant select on sys.V_$logmnr_contents to dbmotoP;
grant select on sys.V_$thread to dbmotoP;
grant select on sys.V_$archive_dest to dbmotoP;
grant select on sys.v_$archived_log to dbmotoP;
grant select any transaction to dbmotoP;
grant select on cdb_pdbs to dbmotoP;
grant logmining to dbmotoP;
grant select on sys.v_$database to dbmotoP;
grant select on sys.v_$containers to dbmotoP;
grant select on DBA_LOG_GROUPS to dbmotoP;
grant select on DBA_LOG_GROUP_COLUMNS to dbmotoP;
grant EXECUTE_CATALOG_ROLE to dbmotoP;

// シンクロナイゼーション使用時
grant select on sys.aud$ to dbmotoP;

◇CDBユーザ
※ユーザ作成、権限付与はCDBで実施する必要があります。

// ユーザ作成
create user c##dbmotoC identified by dbmotoC;

// DB接続オープン
grant create session to c##dbmotoC container=ALL;;

// Redoログ参照権限
grant alter database to c##dbmotoC container=ALL;
grant execute on sys.dbms_logmnr_d to c##dbmotoC container=ALL;
grant select on sys.v_$parameter to c##dbmotoC container=ALL;
grant select on sys.v_$log to c##dbmotoC container=ALL;
grant select on sys.v_$logfile to c##dbmotoC container=ALL;
grant select on sys.V_$logmnr_contents to c##dbmotoC container=ALL;
grant select on sys.V_$thread to c##dbmotoC container=ALL;
grant select on sys.V_$archive_dest to c##dbmotoC container=ALL;
grant select on sys.v_$archived_log to c##dbmotoC container=ALL;
grant select any transaction to c##dbmotoC container=ALL;
grant select on cdb_pdbs to c##dbmotoC container=ALL;
grant logmining to c##dbmotoC container=ALL;
grant select on sys.v_$database to c##dbmotoC container=ALL;
grant select on sys.v_$containers to c##dbmotoC container=ALL;
grant select on DBA_LOG_GROUPS to c##dbmotoC container=ALL;
grant select on DBA_LOG_GROUP_COLUMNS to c##dbmotoC container=ALL;
grant EXECUTE_CATALOG_ROLE to c##dbmotoC container=ALL;
alter user c##dbmotoC set container_data=ALL container=current;

// シンクロナイゼーション使用時
grant select on sys.aud$ to c##dbmotoC;

●ミラーリング複製先ターゲット用

※CDBユーザは必要ありません。

◇PDBユーザ
// ユーザ作成
>create user dbmoto identified by dbmoto;

// DB接続オープン
>grant create session to dbmoto;

// 参照・編集権限
>grant select any table to dbmoto;
>grant insert any table to dbmoto;
>grant update any table to dbmoto;
>grant delete any table to dbmoto;

// TRUNCATE権限
>grant drop any table to dbmoto;
>grant alter any table to dbmoto;

// ターゲットテーブル作成ウィザード使用時のみ必要
>grant create any table to dbmoto;
>grant unlimited tablespace to dbmoto;

●DBMotoでの設定箇所について

まず通常のユーザ設定画面ではPDBユーザを指定します。接続先データソースもPDB用を入力します。
20151217-01

にトランザクション設定画面にてサプリメンタルロギングを設定する際はまず確認ボタンを押下し、次にログ設定の横のボタンを押下します。
20151217-02

ここではCDBユーザを指定します。サーバもCDB用を入力します。
20151217-03

最後にサプリメンタルロギングにチェックを入れ、インストールボタンを押下することでサプリメンタルロギングが有効となります。
20151217-04

関連したトピックス

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください