Unificando o Cadastro de Usuários do CIGAM entre duas bases Oracle
Para que não seja necessário administrar 2 ou mais cadastros de usuários no CIGAM podemos unificar estas bases através da criação de sinônimos dentro do Oracle.
Uma das formas que podemos utilizar para isso é a seguinte:
/*
UNIFICAÇÃO DO CADASTRO DE USUÁRIOS BASE_UN1 x BASE_UN2
OS.: 999999/9 Criado em: 2009-05-20
Técnico: Alexsandro Haag
*/
--Abrindo o sqlplus
c:\>sqlplus /nolog
--Conectando na BASE_UN1
CONNECT BASE_UN1/SENHA@ORCL;
--Concedendo permissões para a BASE_UN2 nas tabelas de usuários da BASE_UN1
GRANT SELECT,
INSERT,
UPDATE,
DELETE ON geusuari TO BASE_UN2;
GRANT SELECT,
INSERT,
UPDATE,
DELETE ON gedireit TO BASE_UN2;
GRANT SELECT,
INSERT,
UPDATE,
DELETE ON geseusua TO BASE_UN2;
GRANT SELECT,
INSERT,
UPDATE,
DELETE ON geultpas TO BASE_UN2;
GRANT SELECT,
INSERT,
UPDATE,
DELETE ON geuxdir TO BASE_UN2;
GRANT SELECT,
INSERT,
UPDATE,
DELETE ON gegxusu TO BASE_UN2;
GRANT SELECT,
INSERT,
UPDATE,
DELETE ON gegrupos TO BASE_UN2;
GRANT SELECT,
INSERT,
UPDATE,
DELETE ON gegrpxdi TO BASE_UN2;
--Conectando como DBA para dar permissões adicionais ao usuário BASE_UN2
CONNECT sys@orcl AS sysdba;
--Permitindo ao usuário BASE_UN2 criar sinônimos em seu próprio esquema somente
GRANT CREATE SYNONYM TO BASE_UN2;
--Conectando como BASE_UN2
CONNECT BASE_UN2/SENHA@orcl;
--Fazendo backup das tabelas através do comando EXP
host exp BASE_UN2/SENHA@orcl file=BASE_UN2_usuarios.dmp tables=(geusuari,gedireit,geseusua,geultpas,geuxdir,gegxusu,gegrupos,gegrpxdi) direct=y buffer=40000
--Apagando tabelas que não serão mais usadas
DROP TABLE geusuari;
DROP TABLE gedireit;
DROP TABLE geseusua;
DROP TABLE geultpas;
DROP TABLE geuxdir;
DROP TABLE gegxusu;
DROP TABLE gegrupos;
DROP TABLE gegrpxdi;
--Criando os sinônimos
CREATE SYNONYM geusuari FOR BASE_UN1.geusuari;
CREATE SYNONYM gedireit FOR BASE_UN1.gedireit;
CREATE SYNONYM geseusua FOR BASE_UN1.geseusua;
CREATE SYNONYM geultpas FOR BASE_UN1.geultpas;
CREATE SYNONYM geuxdir FOR BASE_UN1.geuxdir;
CREATE SYNONYM gegxusu FOR BASE_UN1.gegxusu;
CREATE SYNONYM gegrupos FOR BASE_UN1.gegrupos;
CREATE SYNONYM gegrpxdi FOR BASE_UN1.gegrpxdi;
--Pronto!
EXIT;
Após este procedimento os objetos relacionados ao cadastro de usuários na BASE_UN2 serão sinônimos (apontamentos para tabelas da BASE_UN1) e não mais tabelas como eram até então.
O CIGAM os enxergará como se fossem tabelas normais, podendo realizar neles quaisquer operações DML (insert,update,delete) e SELECTs diversos. Toda a organização lógica neste caso fica nas bases de dados.
Uma das formas que podemos utilizar para isso é a seguinte:
/*
UNIFICAÇÃO DO CADASTRO DE USUÁRIOS BASE_UN1 x BASE_UN2
OS.: 999999/9 Criado em: 2009-05-20
Técnico: Alexsandro Haag
*/
--Abrindo o sqlplus
c:\>sqlplus /nolog
--Conectando na BASE_UN1
CONNECT BASE_UN1/SENHA@ORCL;
--Concedendo permissões para a BASE_UN2 nas tabelas de usuários da BASE_UN1
GRANT SELECT,
INSERT,
UPDATE,
DELETE ON geusuari TO BASE_UN2;
GRANT SELECT,
INSERT,
UPDATE,
DELETE ON gedireit TO BASE_UN2;
GRANT SELECT,
INSERT,
UPDATE,
DELETE ON geseusua TO BASE_UN2;
GRANT SELECT,
INSERT,
UPDATE,
DELETE ON geultpas TO BASE_UN2;
GRANT SELECT,
INSERT,
UPDATE,
DELETE ON geuxdir TO BASE_UN2;
GRANT SELECT,
INSERT,
UPDATE,
DELETE ON gegxusu TO BASE_UN2;
GRANT SELECT,
INSERT,
UPDATE,
DELETE ON gegrupos TO BASE_UN2;
GRANT SELECT,
INSERT,
UPDATE,
DELETE ON gegrpxdi TO BASE_UN2;
--Conectando como DBA para dar permissões adicionais ao usuário BASE_UN2
CONNECT sys@orcl AS sysdba;
--Permitindo ao usuário BASE_UN2 criar sinônimos em seu próprio esquema somente
GRANT CREATE SYNONYM TO BASE_UN2;
--Conectando como BASE_UN2
CONNECT BASE_UN2/SENHA@orcl;
--Fazendo backup das tabelas através do comando EXP
host exp BASE_UN2/SENHA@orcl file=BASE_UN2_usuarios.dmp tables=(geusuari,gedireit,geseusua,geultpas,geuxdir,gegxusu,gegrupos,gegrpxdi) direct=y buffer=40000
--Apagando tabelas que não serão mais usadas
DROP TABLE geusuari;
DROP TABLE gedireit;
DROP TABLE geseusua;
DROP TABLE geultpas;
DROP TABLE geuxdir;
DROP TABLE gegxusu;
DROP TABLE gegrupos;
DROP TABLE gegrpxdi;
--Criando os sinônimos
CREATE SYNONYM geusuari FOR BASE_UN1.geusuari;
CREATE SYNONYM gedireit FOR BASE_UN1.gedireit;
CREATE SYNONYM geseusua FOR BASE_UN1.geseusua;
CREATE SYNONYM geultpas FOR BASE_UN1.geultpas;
CREATE SYNONYM geuxdir FOR BASE_UN1.geuxdir;
CREATE SYNONYM gegxusu FOR BASE_UN1.gegxusu;
CREATE SYNONYM gegrupos FOR BASE_UN1.gegrupos;
CREATE SYNONYM gegrpxdi FOR BASE_UN1.gegrpxdi;
--Pronto!
EXIT;
Após este procedimento os objetos relacionados ao cadastro de usuários na BASE_UN2 serão sinônimos (apontamentos para tabelas da BASE_UN1) e não mais tabelas como eram até então.
O CIGAM os enxergará como se fossem tabelas normais, podendo realizar neles quaisquer operações DML (insert,update,delete) e SELECTs diversos. Toda a organização lógica neste caso fica nas bases de dados.
Comentários