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
    titleLimitaçã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

  Abaixo
  • 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
    languagesql
    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
    iconfalse
    Deck of Cards
    idSeguranç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
    languagesql
    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
    iconfalse
    Deck of Cards
    idSeguranç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
iconfalse
Informações
iconfalse

Produto: Framework

Informações
iconfalse

Versão: 11.82.XX e 12.01.XX

Informações
iconfalse

Processo: Configurar Segurança por linha e por coluna na Consulta SQL

Informações
iconfalse
Informações
iconfalse

Status: Finalizado

Informações
iconfalse

Data: 29/08/2016

Informações
iconfalse

Autores:

Douglas Maxwell de Oliveira

Fábio Augusto Amaral Melo Nunes

Karina Dos Santos Costa

Stella Gleyse Macedo Vilaca

Wesley Avelino De Carvalho