Versões comparadas
Chave
- Esta linha foi adicionada.
- Esta linha foi removida.
- A formatação mudou.
Índice:
Índice exclude .*ndice: Objetivo:
Mostrar como e porque utilizar as configurações "Não considerar segurança por linha" e "Não considerar segurança por coluna", disponíveis no cadastro de Consultas SQL.
Introdução:
Na tela de cadastro de consultas SQL é possível determinar, para cada consulta, se ela deve considerar ou não a segurança por perfil/usuário ou segurança de campos. Basta marcar as opções:
- Não considerar segurança por linha: Quando marcada, a Consulta SQL será executada para todos os usuários, independente da segurança por perfil ou por usuário configurada.
- Não considerar segurança por coluna: Quando marcada, a Consulta SQL será executada sem validar a segurança de acesso a campos configurada no perfil do usuário logado.
Image Modified
Aviso title Limitação na aplicação de Segurança - Para que os filtros de segurança sejam aplicados corretamente é requerido que a query utilizada viabilize a identificação das tabelas e colunas de Origem. Operações SQL como UNION ALL, CASE, DECODE etc podem afetar a capacidade de se identificar com sucesso a origem do dado projetado no select.
- Conversões de valores podem afetar o comportamento de aplicações de filtro. Por exemplo, na query SELECT B.
Também é requerido que não sejam utilizadas Alias nas projeções dos campos que devem ser considerados para filtros.
- CODCOLIGADA,
DECODE(B.CODFILIAL, 8,'ABC',11,'JFK',20,'LLS',29,'DJT',37,'BOS',B.CODFILIAL) FILIAL, um filtro "B.CODFILIAL = 11" configurado não traria resultado, pois 11 foi transformado em memória para "JFK", pela função DECODE. Em suma, para garantir que a segurança seja sempre aplicada, os nomes/valores projetados tem que ser os mesmos utilizados no filtro.
Abaixo
- CODCOLIGADA,
estão descritos alguns exemplos dessas configurações.
Configuração: Não considerar segurança por linha
Para exemplificarmos essa configuração, foi criado um usuário 'segurancaSQL' associado ao perfil 'TesteSQL'. Ao criarmos o usuário, configuramos o seguinte filtro: cahapa <> 00001, conforme imagem abaixo:
Image Modified
Veja abaixo a consulta SQL que será utilizada neste exemplo:
Bloco de código language sql SELECT CODCOLIGADA, CHAPA, CODSECAO, CODFUNCAO, CODSINDICATO, CODHORARIO, SALARIO FROM PFUNC
A seguir, foram descritas as diferenças entre utilizar ou não esta configuração:
Informações icon false Deck of Cards id Segurança por Linha Card id 'Não considerar segurança por linha' desmarcado label 'Não considerar segurança por linha' desmarcado title 'Não considerar segurança por linha' desmarcado Considerando a seguinte consulta, com o campo 'Não considerar segurança por linha' desmarcado:
Image Modified
Após logar no sistema com o usuário segurancaSQL e executar a consulta criada anteriormente, todos os funcionários solicitados no select serão retornadas, exceto o de chapa = 00001, pois o filtro de perfil e de usuário serão considerados:
Image Modified
Card id 'Não considerar segurança por linha' marcado label 'Não considerar segurança por linha' marcado title 'Não considerar segurança por linha' marcado Se criarmos uma consulta idêntica à consulta anterior, porém com o campo 'Não considerar segurança por linha' marcado, os filtros configurados no perfil ou em usuário, não serão considerados e o usuário logado conseguirá visualizar todos os registros da consulta.
Image Modified Após logar no sistema com o usuário ConsultaSQL e executar essa consulta, todos os registros solicitados no select serão retornadas, inclusive o registro de chapa = 00001, pois filtros por perfil e filtros por usuário não serão considerados:
Image Modified
Configuração: Não considerar segurança por coluna
Para exemplificarmos essa configuração, foi criado um usuário 'Teste' associado ao perfil 'SegColuna'. Ao criarmos o perfil, configuramos a seguinte restrição a campos: Não pode consultar, nem alterar o campo CODFUNCAO, da tabela PFUNC, conforme imagem abaixo:
Image Modified
Veja abaixo a consulta SQL que será utilizada neste exemplo:
Bloco de código language sql SELECT CODCOLIGADA, CHAPA, CODSECAO, CODFUNCAO, CODSINDICATO, CODHORARIO, SALARIO FROM PFUNC
A seguir, foram descritas as diferenças entre utilizar ou não esta configuração:
Informações icon false Deck of Cards id Segurança por Coluna Card id 'Não considerar segurança por coluna' desmarcado label 'Não considerar segurança por coluna' desmarcado title 'Não considerar segurança por coluna' desmarcado Considerando a seguinte consulta, com o campo 'Não considerar segurança por coluna' desmarcado:
Image Modified
Após logar no sistema com o usuário Teste e executar a consulta criada anteriormente, todas as colunas solicitadas no select serão retornadas, exceto CODFUNCAO, pois a permissão configurada nos campos do perfil será considerada:
Image Modified
Card id 'Não considerar segurança por coluna' marcado label 'Não considerar segurança por coluna' marcado title 'Não considerar segurança por coluna' marcado Se criarmos uma consulta idêntica à consulta anterior, porém com o campo 'Não considerar segurança por coluna' marcado, as configurações feitas no perfil, em acesso a campos, não serão consideradas e o usuário logado conseguirá visualizar todas as colunas da consulta.
Image Modified
Após logar no sistema com o usuário Teste e executar essa consulta, todas as colunas solicitadas no select serão retornadas, inclusive CODFUNCAO, pois a configuração de acesso a campos do perfil não será considerada:
Image Modified
Informações | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||
|
Informações | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||
|