Sobre Filtros

Os filtros controlam o acesso de segurança aos valores dos dados em um cubo. Os filtros são a forma mais granular de segurança disponível.

Quando você cria um filtro, você designa um conjunto de restrições em células específicas do cubo ou em um intervalo de células. Você pode então designar o filtro a usuários ou grupos.

Sua própria atribuição de segurança determina se você pode criar, designar, editar, copiar, renomear ou excluir filtros:

  • Se você tiver a atribuição Gerente de Aplicativos, poderá gerenciar qualquer filtro para qualquer usuário ou grupo. Os filtros não afetam você.
  • Se você tiver a atribuição Atualização de Banco de Dados, poderá gerenciar filtros para os aplicativos que você criou.
  • Se você tiver a atribuição Gerente de Banco de Dados, poderá gerenciar filtros dentro de seus aplicativos ou cubos.
  • Se você tiver a atribuição Acesso ao Banco de Dados (padrão), terá acesso de leitura aos valores de dados em todas as células, a menos que seu acesso seja mais restrito por filtros.

Criar Filtros

Você pode criar múltiplos filtros para um cubo. Se você editar um filtro, as modificações feitas em sua definição serão herdadas por todos os usuários desse filtro.

Consulte Controlando o Acesso às Células do Banco de Dados Usando Filtros de Segurança.

  1. Navegue até o editor de filtro.

    Na Interface Redwood:

    1. Na página Aplicativos, abra o aplicativo e depois abra o banco de dados (cubo).
    2. Clique em Personalização e em Filtros.

    Na Interface Web do Essbase:

    1. Na página Aplicativos, expanda o aplicativo.
    2. No menu Ações, à direita do nome do cubo, inicie o inspetor.
    3. Selecione a guia Filtros.
  2. Clique em Adicionar.
  3. Digite um nome de filtro na caixa de texto Nome do Filtro.
  4. No Editor de Filtro, clique em Adicionar.
  5. Em Acesso, clique e use o menu drop-down para selecionar um nível de acesso.
    • Nenhum: Nenhum dado pode ser recuperado ou atualizado

    • Leitura: Os dados podem ser recuperados, mas não atualizados

    • Gravação: Os dados podem ser recuperados e atualizados

    • MetaRead: Metadados (nomes de dimensões e membros) podem ser recuperados e atualizados

      O nível de acesso MetaRead substitui todos os outros níveis de acesso. Filtros de dados adicionais são aplicados nos filtros MetaRead existentes. A filtragem de combinações de membros (usando relações AND) não se aplica ao nível de acesso MetaRead. MetaRead filtra cada membro separadamente (usando uma relação OR).

  6. Selecione a linha em Especificação de Membro e informe os nomes dos membros. Em seguida, clique em Submeter Imagem do ícone para submeter filtro do Redwood..

    Você pode filtrar membros separadamente ou pode filtrar combinações de membros. Especifique nomes de dimensões ou membros, nomes de aliases, combinações de membros, conjuntos de membros que são definidos por funções ou nomes de variáveis de substituição precedidos de um E comercial (&). Separe múltiplas entradas por vírgulas.

  7. Crie linhas adicionais para o filtro, conforme necessário.

    Se as linhas do filtro se sobrepuserem ou entrarem em conflito, especificações mais detalhadas da área do cubo serão aplicadas sobre as especificações menos detalhadas e os direitos de acesso mais permissivos serão aplicados sobre os direitos de acesso menos permissivos. Por exemplo, se você fornecer um acesso de Leitura de usuário para acesso a Jan Real e de Gravação, o usuário terá acesso de Gravação a Jan Real.

  8. Clique em Validar para garantir que o filtro seja válido.
  9. Clique em Salvar.

Para editar um filtro na Interface Redwood, localize a guia Filtros selecionando o cubo e, em seguida, selecionando a página Personalização. Em seguida, edite o filtro clicando no nome dele e fazendo suas alterações no editor de filtro. Para editar uma linha existente, clique duas vezes nessa linha.

Para editar um filtro na Interface Web Clássica, vá até a guia Filtros no inspetor e edite o filtro clicando no nome dele e fazendo as alterações no editor de filtro.

Você pode copiar, renomear ou excluir um filtro clicando no menu Ações à direita do nome do filtro e escolhendo uma opção.

Depois de criar os filtros, designe esses filtros a usuários ou grupos.

Criar Filtros Dinâmicos Eficientes

Você pode criar filtros dinâmicos com base em dados de origem externos para reduzir o número de definições de filtro necessárias.

Em vez de gerenciar um conjunto de filtros de acesso a dados codificados para muitos usuários, você pode filtrar o acesso às células do cubo de dados de origem externos, com base nos nomes de membro e usuário.
Você faz isso usando a sintaxe de definição de filtro dinâmico, incluindo o método @datasourceLookup e as variáveis $LoginUser e $LoginGroup. Seus dados de origem externos são um arquivo csv ou uma tabela relacional. Para dados de origem relacionais, você pode carregar o .csv para uma tabela relacional.

Sintaxe de Filtro Dinâmico

Use a sintaxe de filtro dinâmico para criar filtros flexíveis que você possa designar a diversos usuários e grupos.

As linhas de filtro podem conter os seguintes elementos como parte de sua definição, além das expressões de membro.

$loginuser

Essa variável armazena o valor do usuário atual conectado no runtime. Ela pode ser usada em conjunto com o método @datasourcelookup.

$logingroup

Essa variável armazena o valor de todos os grupos aos quais o usuário atual conectado pertence. Ela inclui grupos diretos e indiretos. Quando usado em conjunto com o método @datasourcelookup, cada grupo é consultado individualmente na Origem de Dados.

@datasourcelookup

Esse método extrai registros de uma Origem de Dados.

Sintaxe

@datasourcelookup (dataSourceName, columnName, columnValue, returnColumnName)
Parâmetro Descrição
dataSourceName

O nome da Origem de Dados externa definida no Essbase. Para uma Origem de Dados no nível do aplicativo, prefixe o nome com o nome do aplicativo e um ponto.

columnName

O nome da coluna Origem de Dados a ser pesquisada em busca de um determinado columnValue.

columnValue

O valor a ser pesquisado em columnName.

returnColumnName

O nome da coluna Origem de Dados da qual retornar uma lista de valores.

Descrição

Uma chamada @datasourcelookup é equivalente à seguinte consulta SQL:

select returnColumnName from dataSourceName where columnName=columnValue

@datasourcelookup pesquisa a Origem de Dados em questão e procura registros, em que columnName contém columnValue. Se você especificar columnValue como $loginuser, esse método procurará registros em que columnName contém o nome do usuário conectado atualmente.

O Essbase forma a linha de definição de filtro, combinando os elementos da lista como uma string separada por vírgula. Se qualquer registro contiver caracteres especiais, espaços ou somente números, será colocado entre aspas.

Exemplos

Coloque os parâmetros entre aspas.

A seguinte chamada consulta uma Origem de Dados global e retorna uma lista de nomes de loja onde Mary é a gerente.

@datasourceLookup("StoreManagersDS","STOREMANAGER","Mary","STORE")

A seguinte chamada consulta uma Origem de Dados no nível do aplicativo e retorna uma lista de nomes de loja onde o usuário atualmente conectado é o gerente.

@datasourceLookup("Sample.StoreManagersDS","STOREMANAGER","$loginuser","STORE")

A seguinte chamada consulta uma Origem de Dados no nível do aplicativo e retorna uma lista de nomes de loja onde o departamento da loja corresponde a qualquer um dos grupos aos quais o usuário conectado pertence.

@datasourceLookup("Sample.StoreManagersDS","STORE_DEPARTMENT","$logingroup","STORE")

Se o usuário conectado pertencer a 3 grupos, o método @datasourcelookup acima retornará todos os valores de coluna correspondentes de cada grupo.

Workflow para Criar Filtros Dinâmicos

Use o seguinte workflow geral para criar filtros dinâmicos.

Esse workflow de filtros dinâmicos presume que você já tenha um cubo, além de usuários e grupos provisionados.

  1. Identifique uma origem de dados, quer seja um arquivo ou uma origem relacional.
  2. Defina a conexão e a Origem de Dados no Essbase, seja globalmente ou no nível do aplicativo.
  3. Crie filtros no nível do cubo,
    • Na Interface Redwood, navegue até o cubo, escolha Personalização e depois escolha Filtros.
    • Na Interface Web Clássica, use a seção Filtros do inspetor de banco de dados.

  4. Defina linhas para cada filtro, usando a sintaxe de filtro dinâmico para empregar a variável $loginuser, a variável $logingroup e o método @datasourcelookup, conforme necessário.
  5. Designe os filtros a usuários ou grupos.
  6. Se você tiver atribuído o filtro a um grupo, atribua o grupo ao aplicativo a ser filtrado,
    • Na Interface Redwood, navegue até o aplicativo, escolha Personalização e depois escolha Permissões.
    • Na Interface Web Clássica, use a seção Filtros do inspetor de banco de dados.

Exemplo de um Filtro Dinâmico

O filtro dinâmico a seguir funciona com o cubo chamado Efficient.UserFilters, disponível na galeria como modelo de amostra.


Filtro dinâmico com três linhas concedendo acesso medido ao usuário conectado.

Para aprender a criar e aplicar esse filtro dinâmico, faça download do modelo de pasta de trabalho, Efficient_Filters.xlsx, na seção Técnico da galeria, e siga as instruções do LEIA-ME na pasta de trabalho. A galeria está disponível na seção Arquivos da interface Web do Essbase.