Proxy User Authentication

Desde a versão do Oracle 9i Release 2 é possível criar usuários de proxy, permitindo-lhe acessar um esquema por meio de uma combinação de nome de usuário e senha diferente.

Vamos a um exemplo de como fazer isso:


Primeiro criamos um usuário padrão que será compartilhado para uso em nossa aplicação para utilizar o PROXY. Perceba que criamos a senha, pois nossa aplicação precisará se conectar de alguma forma. O que não sabemos é a senha do usuário que efetuará a conexão no banco de dados, no nosso caso o usuário PRODUCAO:

SQL> create user compartilhado identified by compartilhado;

User created

SQL> grant resource, connect, create session to compartilhado;

Grant succeeded

O que precisamos é nos conectar com o usuário PRODUCAO, porém desconhecemos a sua senha. Assim iremos adicionar a grant de “CONNECT TROUGH” para o usuário COMPARTILHADO que acabamos de criar, o qual conhecemos a senha. Ele[COMPARTILHADO] irá fazer a ponte para o usuário PRODUCAO.

SQL> alter user producao grant connect through compartilhado;

User altered

Agora a partir do usuário COMPARTILHADO podemos se conectar via proxy:

SQL> conn compartilhado[producao]/compartilhado;
Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 
Connected as compartilhado[producao]

SQL> show user
User is "compartilhado[producao]"

Vamos criar uma tabela para validar o procedimento e ver onde está sendo criada esta tabela:

SQL> create table teste_compartilhado (id number);

Table created

Agora se consultarmos com um usuário sysdba veremos onde a tabela foi criada:

SQL> select owner, table_name
2    from dba_tables
3   where table_name = 'TESTE_COMPARTILHADO';

OWNER                          TABLE_NAME
------------------------------ ------------------------------
PRODUCAO                       TESTE_COMPARTILHADO

Se você quiser saber todos os proxys criados faça a consulta abaixo:

SQL> SELECT * FROM proxy_users;

PROXY                          CLIENT                         AUTHENTICATION FLAGS
------------------------------ ------------------------------ -------------- -----------------------------------
COMPARTILHADO                  PRODUCAO                       NO             PROXY MAY ACTIVATE ALL CLIENT ROLES

E para remover a permissão fazemos assim:

SQL> alter user PRODUCAO revoke connect through COMPARTILHADO;

User altered

SQL>  SELECT * FROM proxy_users;

PROXY                          CLIENT                         AUTHENTICATION FLAGS
------------------------------ ------------------------------ -------------- -----------------------------------

Abraços,

Ronaldo.

Nenhum comentário:

Postar um comentário