Você pode usar o conceito de roles não default.
Quando vc conecta no banco, são habilitadas automaticamente todas as roles
associadas ao usuário que possuem o parâmetro DEFAULT_ROLE = YES (vc pode
consultar através da DBA_ROLE_PRIVS).
Dessa forma, você poderia associar ao usuário as roles correspondentes de forma
não default e na sua aplicação, no momento que o usuário logar vc habilita as
roles.
Seria mais ou menos assim:
declare
cursor c_roles is
select GRANTED_ROLE
from dba_role_privs
where GRANTEE = USER AND
DEFAULT_ROLE = 'NO';
begin -- HABILITA AS ROLES DO USUARIO
for v_roles in c_roles loop
begin
nOpen := Dbms_Sql.Open_Cursor;
Dbms_Sql.Parse(nOpen, 'SET ROLE ' || v_roles.GRANTED_ROLE, 2);
nLinhas := Dbms_Sql.Execute(nOpen);
Dbms_Sql.Close_Cursor(nOpen);
exception
when others then
msg_alert('Erro - Não foi possível habilitar a ROLE ' ||
v_roles.GRANTED_ROLE || CHR(13) ||
'Motivo: ' || SQLCODE || ' ' || SQLERRM,'I',true);
end;
end loop;
- Original Message -
From: cabal_o
To: oracle_br@yahoogrupos.com.br
Sent: Wednesday, October 11, 2006 9:43 AM
Subject: [oracle_br] Como Desabilitar o Acesso ao meu Banco ?
Gostaria de saber como desabilitar o acesso ao meu banco da seguinte
forma:
Só permitir o acesso ao banco caso seja através de um programa
específico(ex. programas de vendas).
Se o usuário tentasse logar com o sqlplus ou outros desse, não fosse
liberado o acesso a ele.
valeu galera.
--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.408 / Virus Database: 268.13.2/471 - Release Date: 10/10/2006
[As partes desta mensagem que não continham texto foram removidas]
--
Atenção! As mensagens deste grupo são de acesso público e de inteira
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
--__
Vem aí: ENPO-BR 2006 - Encontro Nacional de Profissionais Oracle
VISITE: http://www.enpo-br.org/ - Dia 11/11 Vagas Limitadas
__
Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine
Links do Yahoo! Grupos
* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/
* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html