DBMotoレプリケーションに必要なOracleユーザ権限


DBMotoで使用するOracleユーザに必要な権限は下記の通りです。
ユーザ名を「dbmoto」とした場合の例となります。
2017/06/29 一部修正しました

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

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

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

// 参照権限
>grant select any table to dbmoto;

// サプリメンタルロギング設定
>grant alter database to dbmoto;
>grant select on sys.v_$database to dbmoto;

※AWS のRDSでは上記alter databaseの権限を付与できません。
代わりにPL/SQLの下記コマンドをSQL PLUS等で実行します。
exec rdsadmin.rdsadmin_util.alter_supplemental_logging(‘ADD’,’PRIMARY KEY’);
exec rdsadmin.rdsadmin_util.alter_supplemental_logging(‘ADD’,’UNIQUE’);
参考URL:http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.html#Appendix.Oracle.CommonDBATasks.AddingSupplementalLogging

// 最小レベルのサプリメンタルロギングの設定ではさらに下記が必要
※通常はデータベースレベルを推奨しておりますのでその際は下記の設定は不要です。
>grant alter any table to dbmoto;
>grant select on sys.dba_log_groups to dbmoto;
>grant select on sys.dba_log_group_columns to dbmoto;

// Redoログ参照
>grant execute on sys.dbms_logmnr to dbmoto;
>grant select on sys.v_$parameter to dbmoto;
>grant select on sys.v_$log to dbmoto;
>grant select on sys.v_$logfile to dbmoto;
>grant select on sys.V_$logmnr_contents to dbmoto;
>grant select on sys.V_$thread to dbmoto;
>grant select on sys.V_$archive_dest to dbmoto;

// Oracle 10g ・11gR2のみ必要
>grant select any transaction to dbmoto;

// Oracle 12cのみ必要
>grant LOGMINING to dbmoto;

// アーカイブログを参照する場合のみ必要
>grant select on sys.v_$archived_log to dbmoto;

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

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

// ユーザ作成
>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 create any table to dbmoto;

関連したトピックス