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:
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.
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.
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.
@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.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.
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.
Na Interface Web Clássica, use a seção Filtros do inspetor de banco de dados.
$loginuser
, a variável $logingroup
e o método @datasourcelookup
, conforme necessário.O filtro dinâmico a seguir funciona com o cubo chamado Efficient.UserFilters, disponível na galeria como modelo de amostra.
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.