grant por session
-
- 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?
-
- 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!
Dar Grant na tabela na PRE-FORM para o usuário, e quando ele sair do form você da um REVOKE para aquela tabela!
- dr_gori
- 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
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 :-/
- dr_gori
- 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
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...
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...
-
- 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...
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...
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 12 visitantes