Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marcia09

Controle de acesso

Recommended Posts

Boa noite pessoal,

 

Devo fazer um controle de acesso nos dados para emitir relatórios, e o controle seria por linha.

 

Uma das alternativas foi usar view. Porém a consulta para saber se um usuário tem ou não permissão é um pouco complexa, envolve algumas tabelas. E não sei se ficaria lento o uso de views... :blink:

 

Alguém tem alguma sugestão para um controle de acesso assim?

 

Obrigada pela atenção..

Márcia

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se a consulta é complexa a regra de comissão eu a colocaria numa function que retornaria (0 ou 1) se o user tem acesso a linha.

 

Ficaria fácil colocar a function no select.

 

Algo assim

 

SELECT *

FROM ...

WHERE ...

AND F_VALIDA_USER(USER,CHAVE) = 1

 

Ajudou ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Motta,

 

Obrigada pelo retorno.

 

As vews teriam esse check de permissão, porque depende do perfil do usuário.

Exemplo: Um usuário A pode acessar todos os documentos de uma pasta X. Outro usuário B, não tem acesso a pasta X, então não podem aparecer os documentos dessa pasta no relatório. Além desse check de permissão, existem documentos confidenciais que nunca devem aparecer em relatórios.

 

E por que views?

A ferramenta que se vai construir dá a possibilidade para o usuário fazer seus próprios relatórios em um sistema. Porém, o usuário não pode ter acesso as tabelas do sistema por questão de segurança. Por isso se pensou em views, para dizer quais informações e de quais tabelas ele pode ler.

 

O usuário de conexão com o banco, que é único, teria grant de leitura apenas nessas views.

 

O problema é a lentidão.

 

Bom, não sei se tem outra alternativa..

 

 

[]'s

Márcia

 

 

Se a consulta é complexa a regra de comissão eu a colocaria numa function que retornaria (0 ou 1) se o user tem acesso a linha.

 

Ficaria fácil colocar a function no select.

 

Algo assim

 

SELECT *

FROM ...

WHERE ...

AND F_VALIDA_USER(USER,CHAVE) = 1

 

Ajudou ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O usuário de conexão é único ? Isto dificulta um pouco o uso de views pois elas não recebem parametros.

 

Como se controla o usuario , se tem uma tabela de usuários e a aplicação controla isto ?

 

Todos os controles de acesso do Oracle são baseados no user/owner , quando se usa usuário único o controle via Oracle "baba".

 

Está usando o que para gerar os rel. Crystal ou algo assim ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando se usa usuário único fica difícil usar as permissões do Oracle pois elas são baseadas em grant de user.

 

Vai usar o que para estes relatório , Crystal ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.