Grant privileges to the Express CDC for Oracle user, ORACAPTL1.
You must log in to Amazon RDS under the master username to run the GRANT statements and procedures.
To grant the SELECT privilege, at minimum, on objects and system tables that are required for CDC processing, execute the following GRANT statements:
GRANT SELECT ON "PUBLIC"."V$ARCHIVED_LOG" TO "ORACAPTL1";
GRANT SELECT ON "PUBLIC"."V$DATABASE" TO "ORACAPTL1";
GRANT SELECT ON "PUBLIC"."V$LOG" TO "ORACAPTL1";
GRANT SELECT ON "PUBLIC"."V$LOGFILE" TO "ORACAPTL1";
GRANT SELECT ON "PUBLIC"."V$TRANSPORTABLE_PLATFORM" TO "ORACAPTL1";
GRANT SELECT ON "PUBLIC"."V$THREAD" TO "ORACAPTL1";
GRANT SELECT ON "PUBLIC"."V$DATABASE_INCARNATION" TO "ORACAPTL1";
GRANT SELECT ON "SYS"."DBA_LOG_GROUPS" TO "ORACAPTL1";
GRANT SELECT ON "SYS"."DBA_LOG_GROUP_COLUMNS" TO "ORACAPTL1";
GRANT SELECT ON "SYS"."DBA_TABLESPACES" TO "ORACAPTL1";
GRANT SELECT ON "SYS"."OBJ$" TO "ORACAPTL1";
GRANT SELECT ON "SYS"."TAB$" TO "ORACAPTL1";
GRANT SELECT ON "SYS"."IND$" TO "ORACAPTL1";
GRANT SELECT ON "SYS"."COL$" TO "ORACAPTL1";
GRANT SELECT ON "SYS"."PARTOBJ$" TO "ORACAPTL1";
GRANT SELECT ON "SYS"."TABPART$" TO "ORACAPTL1";
GRANT SELECT ON "SYS"."TABCOMPART$" TO "ORACAPTL1";
GRANT SELECT ON "SYS"."TABSUBPART$" TO "ORACAPTL1";
COMMIT;
To grant the SELECT privilege on some additional objects, run the following Amazon RDS procedures:
begin
rdsadmin.rdsadmin_util.grant_sys_object(
p_obj_name => 'DBA_USERS',
p_grantee => 'ORACAPTL1',
p_privilege => 'SELECT',
p_grant_option => false);
end;
--
begin
rdsadmin.rdsadmin_util.grant_sys_object(
p_obj_name => 'ALL_TABLES',
p_grantee => 'ORACAPTL1',
p_privilege => 'SELECT',
p_grant_option => false);
end;
--
begin
rdsadmin.rdsadmin_util.grant_sys_object(
p_obj_name => 'ALL_TAB_PARTITIONS',
p_grantee => 'ORACAPTL1',
p_privilege => 'SELECT',
p_grant_option => false);
end;
--
begin
rdsadmin.rdsadmin_util.grant_sys_object(
p_obj_name => 'V_$PARAMETER',
p_grantee => 'ORACAPTL1',
p_privilege => 'SELECT');
end;
--
begin
rdsadmin.rdsadmin_util.grant_sys_object(
p_obj_name => 'V_$SPPARAMETER',
p_grantee => 'ORACAPTL1',
p_privilege => 'SELECT');
end;
--
begin
rdsadmin.rdsadmin_util.grant_sys_object(
p_obj_name => 'V_$STANDBY_LOG',
p_grantee => 'ORACAPTL1',
p_privilege => 'SELECT');
end;
--
begin
rdsadmin.rdsadmin_util.grant_sys_object(
p_obj_name => 'V_$VERSION',
p_grantee => 'ORACAPTL1',
p_privilege => 'SELECT');
end;
--
begin
rdsadmin.rdsadmin_util.grant_sys_object(
p_obj_name => 'INDPART$',
p_grantee => 'ORACAPTL1',
p_privilege => 'SELECT');
end;
--
-- To register sources and perform other tasks in the PowerExchange Navigator:
begin
rdsadmin.rdsadmin_util.grant_sys_object(
p_obj_name => 'V_$PARAMETER',
p_grantee => '
registration_user
',
p_privilege => 'SELECT');
end;
To provide read access to the Amazon RDS online and archived redo logs, execute the following GRANT statements:
GRANT READ ON DIRECTORY ONLINELOG_DIR to "ORACAPT1";
GRANT READ ON DIRECTORY ARCHIVELOG_DIR to "ORACAPT1";
To perform certain tasks, execute the following GRANT statements, as needed:
-- To run PowerExchange Logger tasks and extract change data continuously:
GRANT CREATE SESSION TO "ORACAPTL1";
--
-- To register sources and perform other tasks in the PowerExchange Navigator:
GRANT SELECT ON
table
TO "
registration_user
"; <-Repeat for each source table.
-- Or specify the following statement if your site security rules allow it:
-- GRANT SELECT ANY TABLE to
registration_user
--
-- To run the SQL for creating supplemental log groups at the end of registration:
GRANT ALTER ANY TABLE TO "
navigator_user
";
-- Or give the SQL file to your DBA. The DBA can run the SQL in the file.
--