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.

Postar um comentário

Postagens mais visitadas deste blog

[eXo] - Remover janela de solicitação de Registro

[Kettle] - Ajuste de problema com horário de verão

Pegando informações de Sessão no Oracle e equivalente no MSSQL