Usando linguagens MDX para definir permissões de dados de célula
A linguagem MDX que define permissões para os dados de célula pode especificar quais células podem ou não ser acessadas. Ao permitir o acesso às células para membros específicos em algumas dimensões e negar o acesso às células para membros específicos em outras dimensões, a segurança da célula fornece uma excelente flexibilidade. Na realidade, é possível criar uma linguagem MDX que permite ou nega acesso a qualquer combinação possível de células.
Ao criar a linguagem MDX, lembre-se do seguinte:
A linguagem MDX não precisa incluir todas as dimensões no cubo. Se uma dimensão for omitida na linguagem MDX, o acesso para membros de dimensão não será afetado.
Para restringir o acesso a apenas uma dimensão, uma linguagem MDX relativamente simples normalmente é suficiente.
A complexidade da linguagem MDX depende, em grande parte, do número de dimensões incluídas.
Para permitir ou negar acesso às células para um membro ou medida específico, use as funções MDX, CurrentMember e Name juntas.
Se um nome de membro não exclusivo na dimensão for especificado, use a função UniqueName em vez da função Name.
Para permitir ou negar acesso às células para um membro e seus descendentes, inclua a função Ancestor na expressão.
Para permitir ou negar acesso às células com base em critérios em várias dimensões, crie uma expressão para cada dimensão e, em seguida, combine-as com AND ou OR em uma expressão.
Revisando exemplos de linguagens MDX que definem permissões
Os tópicos a seguir ilustram como várias linguagens MDX podem ser usadas para controlar o acesso aos dados de célula:
Exemplo 1 - Permitindo o acesso para todos os membros
Usa a expressão padrão para retornar todos os membros.
Exemplo 2 - Permitindo acesso para um único membro
Usa a função CurrentMember para retornar apenas uma única medida.
Exemplo 3 - Negando acesso para um único membro
Usa a função CurrentMember para impedir o acesso a uma única medida.
Exemplo 4 - Limitando o acesso a um membro e seus descendentes
Usa as funções Ancestor e CurrentMember para retornar apenas um único membro e seus descendentes.
Exemplo 5 - Concedendo acesso a uma medida específica em uma dimensão
Usa And para combinar duas expressões que contêm as funções Ancestor e CurrentMember em uma única expressão que inclui apenas uma medida específica de uma dimensão.
Exemplo 6 - Excluindo medidas selecionadas de uma dimensão
Usa And para combinar duas expressões que contêm as funções Ancestor e CurrentMember em uma única expressão que exclui as medidas selecionadas de uma dimensão.
Exemplo 7 - Criando exceções para membros negados
Usa And para combinar duas expressões que contêm as funções Ancestor e CurrentMember em uma única expressão que exclui uma medida selecionada de cada dimensão, exceto de uma dimensão específica.