Document ID:	    34547.1
Subject:            Sample setup scripts - Creating Users and Links
Author:             toscroft
Last Modified:      13 May 1996


-- This script is based on a masterdef site, REP, and a master site, REP2.
--
-- Create surrogate sys user at REP. Surrogate user performs a limited set
-- of SYS's actions, where needed by replication. 
-- 
connect sys/manager
drop user repsys cascade
/
drop user repadmin cascade
/
drop user repuser cascade
/
create user repsys identified by repsys -
default tablespace users                -
temporary tablespace temp
/
grant execute on dbms_defer_internal_sys to repsys
/
execute dbms_repcat_auth.grant_surrogate_repcat('repsys')
/
--
-- Create replication administrator. All administration of replication
-- scenario performed by this user. Only user with execute privilege on
-- dbms_repcat
--
create user repadmin identified by repadmin -
default tablespace users                    -
temporary tablespace temp
/
execute dbms_repcat_admin.grant_admin_any_repschema(      - 
                        userid => 'repadmin')

grant execute on dbms_repcat to repadmin
/
grant execute on dbms_defer_sys to repadmin
/
--
-- Create a user who owns and manipulates the application data
--
create user repuser identified by repuser       -
default tablespace users                        -
temporary tablespace temp
/
execute dbms_repcat_admin.grant_admin_repschema(        -
                userid => 'repuser')

grant execute on dbms_defer to repuser
/
--
-- Create a public database link
--

drop public database link rep2
/
create public database link rep2 using 't_rep2' 
/

--
-- Create a database link for sys to access rep2's surrogate sys user
--

drop database link rep2
/
create database link rep2 connect to repsys identified by repsys  -
using 't_rep2'
/
--
-- Create a database link for repadmin to access rep2's replication
-- administrator
--
connect repadmin/repadmin
drop database link rep2
/
create database link rep2 connect to repadmin identified by repadmin -
using 't_rep2'
/
--
-- Create a database link for repuser to access rep2's repuser
--
connect repuser/repuser
drop database link rep2
/
create database link rep2 connect to repuser identified by repuser -
using 't_rep2'
/
--
-- Connect at rep2 and create surrogate sys user
--
connect sys/change_on_install@t_rep2
drop user repsys cascade
/
drop user repadmin cascade
/
drop user repuser cascade
/
create user repsys identified by repsys -
default tablespace users                -
temporary tablespace temp
/
grant execute on dbms_defer_internal_sys to repsys
/
execute dbms_repcat_auth.grant_surrogate_repcat('repsys')
/
--
-- create replication administrator for rep2
--

create user repadmin identified by repadmin -
default tablespace users                    -
temporary tablespace temp
/
execute dbms_repcat_admin.grant_admin_any_repschema(    -
                        userid => 'repadmin')

grant execute on dbms_repcat to repadmin;

grant execute on dbms_defer_sys to repadmin;

--
-- create replication schema owner
--

create user repuser identified by repuser -
default tablespace users                  -
temporary tablespace temp
/
execute dbms_repcat_admin.grant_admin_repschema(        -
                userid => 'repuser')

grant execute on dbms_defer to repuser
/

--
-- create public database link
--

create public database link rep using 't_rep'
/

--
-- create database link for sys connecting back to repsys on rep
--
drop database link rep
/
create database link rep connect to repsys identified by repsys 
using 't_rep'
/
--
-- Connect as remote replication administrator to create database link 
--
connect repadmin/repadmin@t_rep2
drop database link rep
/
create database link rep connect to repadmin identified by repadmin -
using 't_rep' 
/
--
-- repuser needs a link for background execution of deferred rpc
--
connect repuser/repuser@t_rep2
drop database link rep
/
create database link rep connect to repuser identified by repuser -
using 't_rep'
/