マルチテナント用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用を入力します。
にトランザクション設定画面にてサプリメンタルロギングを設定する際はまず確認ボタンを押下し、次にログ設定の横のボタンを押下します。
ここではCDBユーザを指定します。サーバもCDB用を入力します。
最後にサプリメンタルロギングにチェックを入れ、インストールボタンを押下することでサプリメンタルロギングが有効となります。
関連したトピックス
- Oracleトランザクションセットアップ例(Log ReaderまたはLog Server Agent)[Syniti Data Replication]
- DBMotoレプリケーションに必要なOracleユーザ権限
- Syniti(旧DBMoto)レプリケーションに必要なOracleユーザ権限 Trigger使用時
- DBMotoレプリケーションに必要なMySQLユーザ権限
- DBMotoレプリケーションに必要なSQL Serverユーザ権限
- DBMotoレプリケーションに必要なPostgreSQLユーザ権限
- スキーマ(ユーザ)作成時に「ORA-65096」~Oracle 12cのアーキテクチャはここが違う~:DBMoto
- Oracle View(ビュー)のパフォーマンスを高速化する – Database Performance Analyzer (DPA)によるチューニング
- Oracleアーカイブログモードの変更
- サプリメンタルロギング設定の影響に関して[Syniti DR]