Implementando Segurança no OBIEE

Publicado: 06/03/2013 por alanviegas em Ambiente/Infraestrutura, Modelagem de Dados
Tags:, ,

Olá pessoal, vamos retomar o assunto segurança no OBIEE, mais especificamente segurança em nível de coluna e filtro de dados.

 A segurança em nível de coluna ou pasta permite controlar a sua visibilidade, é implementada na camada de apresentação, ocultando os objetos para um determinado grupo de usuários.

 Já o Filtro de dados (Data Filter), já falamos dele neste blog, é implementado direto no grupo associado ao usuário, através de uma cláusula SQL .

 No nosso exemplo o usuário do grupo de Gerentes tem permissão para ver o total de vendas e o total de custos por cidade e regiões geográficas  já os vendedores devem ver o somente o total de vendas e apenas a cidade que ele representa.

 O usuário bieeuser1 que esta associado ao perfil de Gerentes construiu um relatório onde apresenta o total de vendas e custos variáveis por cidade e região geográfica e deseja publicar este relatório para todos os seus vendedores.

 A coluna de custos variáveis “10- Variable Costs” e a coluna Região “R50 Region” não deve ser visualizada pelo vendedor.

O usuário bieeuser2 esta associado ao perfil Vendedores e deve visualizar o mesmo relatório apenas para a cidade que ele representa, Bueno Aires.

 O resultado apresentado abaixo será para o Gerente:


O resultado apresentado abaixo será para o Vendedor:

Vamos iniciar implementando a segurança do filtro de dados (Data Filter) no OBIEE:

 1 – Para isto criamos uma tabela de controle de acesso onde é possivel definir o usuário, o grupo do usuário, a dimensão e o valor que será filtrado. Esta estrutura de tabela torna flexível a inclusão de futuros filtros de dados para outros usuários e outras dimensões.

 

 No nosso exemplo o usuário bieeuser2 receberá o filtro “Bueno Aires” para a dimensão City.

 2 – No OBIEE, vamos criar um bloco de inicialização buscando o valor desta tabela onde o grupo é o de Vendedores e o usuário será igual ao usuário que estiver logado na sessão.

 

 O login do usuário é pego através da variável de sessão USER.

 3 – A variável V_CIDADE será populado pelos valores retornados no bloco de inicialização que é marcado para ser sempre requerida durante a autenticação do usuário na aplicação.



ideia aqui é utilizar esta variável nos filtros de dados.

Salve tudo.

4 – Agora vamos incluir o filtro de dados no Grupo de Vendedores, acessando o Gerenciador de Identidades e click na role BI_Vendedores.


No nosso exemplo o único usuário associado a esta role é o usuário bieeuser2.

 Click em Permissões.

 

 5 – Click no sinal de “+” para adicionar um novo data filter e vamos selecionar a tabela de apresentação “Ship to Regions”.

 

 Click em editar expressão.

 

 A tabela será filtrado somente para a cidade que retornar na variável.

 

Bom agora vamos implementar a segurança em nível de coluna, no nosso caso os campos “10- Variable Costs” e “R50 Region” não devem ser apresentados para os Vendedores.

1 – Selecione as propriedades dos campos onde é necessário aplicar a restrição de acesso.

2 – Click em Permissões:

3 – Para o grupo de Vendedores marcamos para a role BI_Vendedores sem acesso.

4 – No arquivo de configuração NQSConfig.ini mude o parâmetro PROJECT_INACCESSIBLE_COLUMN_AS_NULL para YES, está sob a seção de segurança. Por padrão é definido como NO. Reinicie os serviços.

Este parâmetro permite que mesmo não tendo acesso as colunas o usuário consiga visualizar um relatório previamente construído com estas coluna.

Para o usuário que tem restrição, estas colunas também ficam ocultas no relatório

5 – O usuário bieeuser1 que esta no grupo de Gerentes consegue visualizar o campo “10-Variable Costs” e “R50 Region” na camada de apresentação e consegue utilizá-loa em qualquer relatório. Alem de visualizar os dado de todas as cidades.


6 – Já o usuário bieeuser2 que esta no grupo de Vendedores não consegue visualizar o campo “10-Variable Costs” e o campo “R50 Region” e acessa apenas a cidade que ele representa “Buenos Aires”.


Portanto, o relatório é apresentado para o vendedor ocultando as colunas que ele não tem acesso, alem de ver apenas as vendas de cidade que ele representa.

Bom pessoal, lembrando que este exemplo não esgota o assunto segurança no OBIEE, mesmo porque em cada cliente existe um cenário e necessidades diferentes.

A versão que utilizamos aqui do OBIEE foi a 11.1.1.5.5

Até a próxima.

Alan Viegas

Anúncios
comentários
  1. Edimilson disse:

    Entendi com faz para aplicar um filtro automático, baseado em uma tabela do modelo de dados.

    Se a minha regra de acesso que diz o que um usuário pode ver estiver em um LDAP ao invés de uma tabela, como faço para aplicar o filtro automáticamente?

    • alanviegas disse:

      Ola Edimilson.

      Bom nesta caso vc precisa criar um bloco de inicialização pegando do LDAP as informações necessárias para o filtro através do login do usuário por exemplo.
      Como pegar estas informações depende muito do tipo de LDAP que vc estiver utilizando.

      Abs.
      Alan Viegas

  2. Grimaldo disse:

    pessoal, gostaria de ocultar uma pasta inteira da camada de apresentação para um determinado usuário, como fazer isso, obrigado;

    • alanviegas disse:

      Ola Grimaldo

      Clicando com o botão direito em cima da pasta, aba Geral > Segurança > voçe irá encontrar uma opçao para ocultar a pasta para os grupos de usuários
      que vc desejar.

      Qualquer problema é só falar
      abs
      Alan Viegas

      • Grimaldo disse:

        Alan, não encontrei esta opção no Administraton Tools em Camada de Apresentação, é isso que você se refere?

  3. alanviegas disse:

    Sim.. na camada de apresentação em cima da pasta que vc quer ocultar. click com botão direito …propriedades > aba geral > Permissoes >

  4. Alvaro Soares disse:

    Como seria a implementação de segurança para o OBIEE 11.1.1.7.1 ?

  5. Alexandre disse:

    Após a criação do bloco de inicialização, todos os usuários logados irão passar pela query que retorna o valor a ser filtrado nos dados. O que acontece com os usuários que não fazem parte desta regra (weblogic e administrator)? Tenho que incluir eles também nesta tabela “Controle Acesso”?

    • Felipe Idalgo disse:

      Ola Alexandre, boa tarde.

      O filtro de dados somente será aplicado pra um usuário especifico ou para todos os usuários que estejam dentro de um mesmo perfil.

      Ex.: se você configurar um filtro de dados no perfil BI_CONSUMER, todos os usuários que estiverem neste perfil terão seus dados filtrados, os usuários que estiverem cadastrados em outros perfis (ex.: BI_AUTHOR, BI_ADMINISTRATOR) não terão seus dados filtrados em função de sua tabela de “Controle de Acesso”, ou seja, acessarão tudo.

      Qualquer dúvida estou a disposição.

      Abraços

      Felipe Idalgo

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s