grant por session

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
adrcesar
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 6
Registrado em: Seg, 26 Jan 2009 10:29 am
Localização: catanduva - sp

Gostaria de conceder GRANT ao usuário apenas na sessão que ele estiver logado via sistema(FORMS), ou seja, se ele tentar acessar as tabelas via SQL/PLUS, por exemplo, ele não conseguiria. Há uma forma de se fazer isso?
davidmeloboy
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 54
Registrado em: Sex, 05 Set 2008 1:53 pm
Localização: Parobé - RS
Contato:
David.

Nem imagino, pois não entendo nada de DBA, mas pode fazer algo assim:
Dar Grant na tabela na PRE-FORM para o usuário, e quando ele sair do form você da um REVOKE para aquela tabela!
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Mas assim não adianta, pois enquanto a tela estiver aberta, o usuário vai conseguir fazer SELECT na tabela :-/
adrcesar
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 6
Registrado em: Seg, 26 Jan 2009 10:29 am
Localização: catanduva - sp

isso até funcionaria, mas ele ganharia privilégios em outras sessões e eu quero que ela tenha essas permissões apenas na sessão do sistema.
adrcesar
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 6
Registrado em: Seg, 26 Jan 2009 10:29 am
Localização: catanduva - sp

Exatamente, Dr. gori. Dei a resposta anterior antes de ver sua resposta.

Você conhece algo sobre essa grant por session?
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Bom, eu estava pensando como poderia ser isso.
Talvez poderia existir um usuário X especialmente pra essa aplicação.

Tipo:
* o Usuário JOAO se conecta no forms.
* o forms valida que o usuário JOAO tem acesso, ta logado direitinho.
* o forms se conecta em um usuário X
* esse usuário X tem os grants necessarios pra tabela
* após fechar, faz login novamente com o usuário JOAO.

Dessa forma, as informações dessa tabela só são visíveis DENTRO do formulário, e ninguém mais vai conseguir acessar.

É uma idéia, sei lá, hehehe
Como eu desconheço a possibilidade de dar GRANT por sessão, acho que algo assim funcionaria...
:?
adrcesar
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 6
Registrado em: Seg, 26 Jan 2009 10:29 am
Localização: catanduva - sp

Achei um meio de fazer que me parece interessante:

Conceder as roles para o usuário;
Deixar como role default apenas a connect; Ex. alter user "fulano" default role connect.
Na aplicação de login:
criar um cursor que verique a tabela USER_ROLE_PRIVS.
fazer um loop neste cursor buscando as roles do usuário logado.
salvar as roles numa variável. Ex: v_set_role := v_set_role||cursor.granted_role||',';
setar os privilégios apenas na sessão corrente. Ex. v_set_role := substr(v_set_role, 1, length(v_set_role)-1); dbms_session.set_role(v_set_role);

Desta forma o usuário terá direitos apenas quando acessar a aplicação...
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 12 visitantes