MCP - Processo de Criação

1. Introdução

Independentemente do método de integração, seja ele direto ou utilizando a aplicação será necessário disponibilizar o usuário padrão e as views e procedures. Um fluxo de criação deve ser seguido para que todas as ferramentas necessárias para o funcionamento da integração, estejam de acordo com os requisitos. A seguir há um uma imagem do fluxo e após será discorrido acerca desses pontos.

 

2. Criação de Usuário

Para a conexão com banco de dados em qualquer formato de integração, é necessário a criação de um usuário específico para a Vtrina, assim a mesma terá acesso apenas a um Schema do banco, e também fica mais organizado para as informações que a mesma necessita ficarem em um só lugar. O nome de usuário e senha será sempre o padrão VIASOFTVTRINA, tanto para o usuário quanto para a senha.

 

2.1 Cliente Base Local

Para clientes que a base de dados, ou seja, o banco de dados é local deve-se entrar em contato com o cliente e solicitar a conexão com o banco de dados e no SQL Developer, logado com o usuário SYS, rodar o seguinte comando para criação correta do usuário Vtrina:

CREATE USER VIASOFTVTRINA IDENTIFIED BY XX_SENHA_VIASOFTVTRINA_XX DEFAULT TABLESPACE VS_USER; GRANT DBA TO VIASOFTVTRINA; GRANT CREATE SESSION TO VIASOFTVTRINA;

A senha para o usuário de banco VIASOFTVTRINA deverá ser gerada de forma aleatória. Para isso é necessário contatar o responsável em produto para geração e armazenamento da senha na plataforma Vault.

 

2.2 Cliente Base em Nuvem

Para clientes que possuem base em nuvem, geralmente não temos acesso ao usuário SYS, o que impossibilita a criação de novos Usuários do banco de dados. Sendo assim é necessário solicitar à empresa responsável pelo banco de dados do cliente, a criação do usuário.

Especificamente no ambiente da Oracle Cloud, o ideal é não executar GRANT DBA TO VIASOFTVTRINA; visando a segurança dos usuário, sendo assim, o mesmo pode ser substituído por outros comandos que garantam GRANT de SELECT/INSERT/UPDATE/EXECUTE dos objetos dos usuário VIASOFTMCP, VIASOFTBASE, VIASOFTMCP e VIASOFTFIN para o usuário  VIASOFTVITRINA. Também vale citar que esse usuário VIASOFTVITRINA pode ser criado como auditável.

BEGIN FOR r IN ( SELECT owner, object_name, object_type FROM all_objects WHERE owner in ('VIASOFTMCP','VIASOFTBASE','VIASOFTFIN') AND object_type in ('TABLE','VIEW','PROCEDURE','FUNCTION','PACKAGE') ) LOOP IF ( r.object_type = 'TABLE' ) THEN EXECUTE IMMEDIATE 'GRANT SELECT, INSERT, UPDATE, DELETE ON ' || r.owner || '.' || r.object_name || ' TO VIASOFTTEST123'; ELSIF ( r.object_type = 'VIEW' ) THEN EXECUTE IMMEDIATE 'GRANT SELECT ON ' || r.owner || '.' || r.object_name || ' TO VIASOFTTEST123'; ELSIF ( r.object_type in ('PROCEDURE', 'FUNCTION', 'PACKAGE') ) THEN EXECUTE IMMEDIATE 'GRANT EXECUTE ON ' || r.owner || '.' || r.object_name || ' TO VIASOFTTEST123'; END IF; END LOOP; END;

3. Concessão de Privilégios

Como o usuário VIASOFTVTRINA é um novo Schema no banco de dados, ele não possuem privilégios que permitem acesso às tabelas dos outros Schemas, por isso é necessário a concessão dos mesmos, para que o novo usuário possa consumir e alterar determinadas tabelas, já pré-estabelecidas:

As concessões não podem ser rodadas no mesmo usuário a que está se concedendo as permissões, ou seja, rode os comandos a seguir no usuário SYS ou VIASOFTMCP:

3.1 Concessões a partir do VIASOFTSYS.

GRANT SELECT ON VIASOFTSYS.FILIAL TO VIASOFTVTRINA; GRANT EXECUTE ON VIASOFTSYS.ARREDONDAR TO VIASOFTVTRINA;

 

3.2 Concessões a partir do VIASOFTMCP.

 

3.3 Concessões a partir do VIASOFTBASE.

 

4. Criação de Views

A criação de Views não tem uma sequência lógica, portanto pode ser criado da forma que achar-se necessário. Cada View está de forma mais detalhada dentro de sua documentação específica, mas pode ser acessado a partir dos links abaixo:

 

5. Criação de Procedures

A criação das procedures servem como ferramenta para inserções de dados no banco. A criação das mesmas não precisa ser executada dentro de uma sequência padrão. Cada procedure está descrita de maneira mais detalhada na documentação específica para Procedures, mas podem ser acessadas através dos links abaixo: