This is the Oracle user that connects to the source database.
The source database user can be the same as the schema of the data. However, we recommend that you create a Tonic Structural-specific user that has more restricted access.
To create the source database user, use the following set of steps:
Granting the source database user access to source tables
The source database user must be able to select data from the tables.
To grant the required access, you can either:
Grant SELECT ANY TABLE to the user
Grant SELECT access to the individual tables in the source database
To grant SELECT ANY TABLE:
To grant SELECT access to the individual tables in the database:
Granting the source database user access to packages
DBMS_RANDOM
The source database user must be granted EXECUTE ON access to DBMS_RANDOM.
DBMS_METADATA
If either:
TONIC_ORACLE_SKIP_CREATE_DB is true
The workspace overrides the setting to true
Then the source database user must have EXECUTE ON privileges for the DBMS_METADATA package:
Other packages, based on object types
Depending on the object types that the source schema includes, the source database user must also have EXECUTE ON privileges for the following packages:
Package
Object types that require it
DBMS_JAVA
JAVA CLASS
JAVA CLASS
JAVA RESOURCE
JAVA SOURCE
DBMS_SCHEDULER
JOB
JOB CLASS
PROGRAM
DBMS_MVIEW
MATERIALIZED VIEW
DBMS_AQADM
QUEUE
To identify the types of objects that are present in the source schema, run the following:
This access might already be in place for the PUBLIC user. If it is not, then to grant the access:
BEGIN
FOR x IN (SELECT owner, table_name FROM all_tables WHERE owner = '<source_schema>')
LOOP
EXECUTE IMMEDIATE 'GRANT SELECT ON "' || x.owner || '"."' || x.table_name || '" TO tonic';
END LOOP;
END;
GRANT EXECUTE ON DBMS_RANDOM TO tonic;
GRANT EXECUTE ON DBMS_METADATA TO tonic;
SELECT object_type FROM dba_objects WHERE owner = '<source-schema>' ORDER BY object_type;
GRANT EXECUTE ON DBMS_JAVA TO tonic;
GRANT EXECUTE ON DBMS_SCHEDULER TO tonic;
GRANT EXECUTE ON DBMS_MVIEW TO tonic;
GRANT EXECUTE ON DBMS_AQADM TO tonic;