Papéis
aplica-se a: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
Funções em modelos tabulares definem permissões de membro para um modelo. Os membros da função podem executar ações no modelo conforme definido pela permissão de função. As funções definidas com permissões de leitura também podem fornecer mais segurança no nível da linha usando filtros de nível de linha.
Para modelos semânticos do Azure Analysis Services e do Power BI, os usuários devem estar em sua ID do Microsoft Entra. Nomes de usuário e grupos são especificados por endereço de email organizacional ou nome de entidade de usuário (UPN). Para o SQL Server Analysis Services, as funções contêm membros do usuário especificados pelo nome de usuário do Windows ou por grupo do Windows e permissões (leitura, processo, administrador).
Importante
Se você usar o Visual Studio para criar funções e adicionar usuários a um projeto de modelo de tabela que será implantado no Azure Analysis Services ou no Power BI, use workspace integrado.
Importante
Para que os usuários se conectem a um modelo implantado usando um aplicativo cliente de relatório, você deve criar pelo menos uma função que tenha pelo menos permissão Leitura. Adicione usuários do aplicativo cliente de relatório à função como membros.
As informações neste artigo são destinadas a autores de modelo de tabela que definem funções usando a caixa de diálogo Gerenciador de Função no SSDT. As funções definidas durante a criação do modelo se aplicam ao banco de dados do workspace de modelo. Depois que um banco de dados modelo é implantado, os administradores de banco de dados modelo podem gerenciar (adicionar, editar, excluir) membros de função usando O SSMS.
Noções básicas sobre funções
As funções são usadas no Analysis Services para gerenciar o acesso a dados do modelo. Há dois tipos de funções:
A função de servidor é uma função fixa que fornece acesso de administrador a uma instância de servidor do Analysis Services. As funções de servidor não se aplicam ao Power BI. Em vez disso, o Power BI usa funções de workspace.
As funções de banco de dados são definidas por autores de modelo e administradores para controlar o acesso a um banco de dados modelo e dados para usuários.
As funções definidas para um modelo de tabela são funções de banco de dados. Essas funções contêm usuários ou grupos que têm permissões específicas que definem a ação que esses membros podem executar no banco de dados modelo. Uma função é criada como um objeto separado no banco de dados e se aplica somente ao banco de dados no qual a função é criada. O autor do modelo adiciona usuários e grupos à função. Por padrão, o autor do modelo tem permissões de Administrador no servidor de banco de dados do workspace; para um modelo implantado, os membros da função são adicionados por um administrador.
As funções em modelos tabulares podem ser definidas com filtros de linha, também conhecidos como de segurança em nível de linha. Os filtros de linha usam expressões DAX para definir as linhas em uma tabela e todas as linhas relacionadas na direção que um usuário pode consultar. Filtros de linha usando expressões DAX só podem ser definidos para as permissões leitura e de leitura e processo. No Power BI, as funções de modelo são definidas no Power BI Desktop e se aplicam apenas à segurança em nível de linha. Para saber mais, consulte Filtros de linha posteriormente neste artigo.
Por padrão, quando você cria um novo projeto de modelo de tabela, o projeto não tem nenhuma função definida. As funções são definidas usando a caixa de diálogo Gerenciador de Funções no SSDT. Quando as funções são definidas durante a criação do modelo, elas são aplicadas ao banco de dados do workspace do modelo. Quando o modelo é implantado, as mesmas funções são aplicadas ao modelo implantado. Depois que um modelo é implantado, os membros da função de servidor (Administrador do Analysis Services) e administradores de banco de dados podem gerenciar as funções associadas ao modelo e aos membros associados a cada função usando O SSMS.
Permissões
As permissões de função descritas nesta seção se aplicam somente ao Azure Analysis Services e ao SQL Server Analysis Services. No Power BI, as permissões são definidas para o modelo semântico. Para saber mais, consulte Gerenciarde acesso de modelo semântico.
Cada função tem uma única permissão de banco de dados definida (exceto a permissão de leitura e processo combinada). Por padrão, uma nova função tem a permissão None. Quando os membros são adicionados a uma função que tem a permissão None, eles não podem modificar o banco de dados, executar uma operação de processo, consultar dados ou ver o banco de dados, a menos que uma permissão diferente seja concedida.
Um grupo ou usuário pode ser membro de qualquer número de funções, cada função com uma permissão diferente. Quando um usuário é membro de várias funções, as permissões definidas para cada função são cumulativas. Por exemplo, se um usuário for membro de uma função com o permissão Leitura e também um membro de uma função com permissão None, esse usuário terá permissões de leitura.
Cada função pode ter uma das seguintes permissões definidas:
Permissões | Descrição | Filtros de linha usando DAX |
---|---|---|
Nenhum | Os membros não podem fazer nenhuma alteração no esquema de banco de dados modelo e não podem consultar dados. | Os filtros de linha não se aplicam. Nenhum dado é visível para os usuários nessa função |
Ler | Os membros têm permissão para consultar dados (com base em filtros de linha), mas não podem ver o banco de dados modelo no SSMS, não podem fazer nenhuma alteração no esquema de banco de dados modelo e o usuário não pode processar o modelo. | Os filtros de linha podem ser aplicados. Somente os dados especificados na fórmula DAX do filtro de linha são visíveis para os usuários. |
Leitura e processo | Os membros têm permissão para consultar dados (com base em filtros de nível de linha) e executar operações de processo executando um script ou pacote que contém um comando de processo, mas não podem fazer nenhuma alteração no banco de dados. Os usuários com permissão não podem exibir o banco de dados modelo no SSMS. | Os filtros de linha podem ser aplicados. Somente os dados especificados na fórmula DAX do filtro de linha podem ser consultados. |
Processo | Os membros podem executar operações de processo executando um script ou pacote que contém um comando de processo. Os membros não podem modificar o esquema de banco de dados modelo, não podem consultar dados e não podem consultar o banco de dados modelo no SSMS. | Os filtros de linha não se aplicam. Nenhum dado pode ser consultado nessa função |
Administrador | Os membros podem fazer modificações no esquema de modelo e podem consultar todos os dados no designer de modelo, no cliente de relatório e no SSMS. | Os filtros de linha não se aplicam. Todos os dados podem ser consultados nessa função. |
Nota
Membros com permissões de leitura e leitura e processo podem consultar dados com base em filtros de linha, mas não podem ver o banco de dados modelo no SSMS. Os membros não podem fazer alterações no esquema de banco de dados modelo e não podem processar o modelo. No entanto, no SQL Server Analysis Services 2019 e anteriores, os membros podem usar DMVs para determinar definições de medida. O SQL Server Analysis Services 2022 e posterior bloqueiam o acesso a DMVs para melhorar a segurança.
Filtros de linha
Os filtros de linha, geralmente conhecidos como segurança em nível de linha no Power BI, definem quais linhas em uma tabela podem ser consultadas por membros de uma função específica. Os filtros de linha são definidos para cada tabela em um modelo usando fórmulas DAX.
Os filtros de linha só podem ser definidos para funções com permissões leitura e de leitura e processo. Por padrão, se um filtro de linha não for definido para uma tabela específica, os membros de uma função com permissão leitura ou leitura e processo poderão consultar todas as linhas na tabela, a menos que a filtragem cruzada se aplique de outra tabela.
Depois que um filtro de linha é definido para uma tabela específica, uma fórmula DAX que é avaliada como um valor TRUE/FALSE define as linhas que podem ser consultadas por membros dessa função específica. Linhas não incluídas na fórmula DAX não podem ser consultadas. Por exemplo, para membros da função Vendas, se a tabela Clientes tiver a seguinte expressão de filtros de linha, =Customers [País] = "EUA", os membros da função Vendas só verão clientes nos EUA.
Os filtros de linha se aplicam às linhas especificadas, bem como às linhas relacionadas. Quando uma tabela tem várias relações, os filtros aplicam segurança para a relação que está ativa. Os filtros de linha serão interseccionados com outros filers de linha definidos para tabelas relacionadas, por exemplo:
Mesa | Expressão DAX |
---|---|
Região | =Region[Country]="USA" |
ProductCategory | =ProductCategory[Name]="Bicycles" |
Transações | =Transações[Ano]=2020 |
O efeito líquido dessas permissões na tabela Transações é que os membros podem consultar linhas de dados em que o cliente está nos EUA, e a categoria de produto é bicicletas, e o ano é 2020. Os usuários não podem consultar transações fora dos EUA ou transações que não sejam bicicletas ou quaisquer transações que não estejam em 2020, a menos que sejam membros de outra função que conceda essas permissões.
Você pode usar o filtro, =FALSE(), para negar o acesso a todas as linhas de uma tabela inteira.
Para saber mais sobre as funções de modelo no Power BI, consulte segurança em nível de linha no Power BI.
Segurança dinâmica
A segurança dinâmica permite definir a segurança em nível de linha com base no nome de usuário do usuário atualmente conectado ou na propriedade CustomData retornada de uma cadeia de conexão. Para implementar a segurança dinâmica, você deve incluir uma tabela com valores de logon (nome de usuário do Windows) para usuários, bem como um campo que pode ser usado para definir uma permissão específica em seu modelo. Por exemplo, inclua uma tabela dimEmployees com uma ID de logon (domínio\nome de usuário), bem como um valor de departamento para cada funcionário no modelo.
Para implementar a segurança dinâmica, você pode usar as seguintes funções como parte de uma fórmula DAX para retornar o nome de usuário do usuário conectado no momento ou a propriedade CustomData em uma cadeia de conexão:
Função | Descrição |
---|---|
da função |
Retorna o domínio\nome de usuário do usuário conectado no momento. |
da função |
Retorna a propriedade CustomData em uma cadeia de conexão. |
Você pode usar a função LOOKUPVALUE para retornar valores para uma coluna em que o nome de usuário do Windows é o mesmo que o nome de usuário retornado pela função USERNAME ou uma cadeia de caracteres retornada pela função CustomData. As consultas podem ser restritas quando os valores retornados por LOOKUPVALUE correspondem a valores na mesma tabela ou tabela relacionada.
Por exemplo, usando esta fórmula:
='dimDepartment'[DepartmentId]=LOOKUPVALUE('dimEmployees'[DepartmentId], 'dimEmployees'[LoginId], USERNAME(), 'dimEmployees'[LoginId], 'dimDepartment'[DepartmentId])
A função LOOKUPVALUE retorna valores para a coluna dimEmployees[DepartmentId], em que o dimEmployees[LoginId] é o mesmo que o LoginID do usuário atualmente conectado, retornado por USERNAME, e os valores para dimEmployees[DepartmentId] são os mesmos que os valores de dimDepartment[DepartmentId]. Os valores em DepartmentId retornados por LOOKUPVALUE são usados para restringir as linhas consultadas na tabela dimDepartment e quaisquer tabelas relacionadas por DepartmentId. Somente as linhas em que DepartmentId também está nos valores da Função DepartmentId retornada por LOOKUPVALUE são retornadas.
dimEmployees
LastName | FirstName | LoginId | DepartmentName | DepartmentId |
---|---|---|---|---|
Marrom | Kevin | Adventure-works\kevin0 | Marketing | 7 |
Bradley | Davi | Adventure-works\david0 | Marketing | 7 |
Dobney | JoLynn | Adventure-works\JoLynn0 | Produção | 4 |
Baretto DeMattos | Paula | Adventure-works\Paula0 | Recursos humanos | 2 |
dimDepartment
DepartmentId | DepartmentName |
---|---|
1 | Corporativo |
2 | Administração e Geral Executiva |
3 | Gerenciamento de Inventário |
4 | Fabricação |
5 | Garantia da qualidade |
6 | Pesquisa e desenvolvimento |
7 | Vendas e Marketing |
Funções de teste
Ao criar um projeto de modelo no Visual Studio, você pode usar o recurso Analisar no Excel para testar a eficácia das funções definidas. No menu Modelo no designer de modelos, selecione Analisar no Excel. Antes da abertura do Excel, a caixa de diálogo Escolher Credenciais e Perspectiva será exibida. Nesta caixa de diálogo, você pode especificar o nome de usuário atual, um nome de usuário diferente, uma função e uma perspectiva que você usará para se conectar ao modelo de workspace como uma fonte de dados. Para saber mais, consulte Analisar no Excel.
Funções de script
As funções para modelos implantados e modelos semânticos podem ser roteadas usando TMSL (Linguagem de Script de Modelo Tabular) para criar ou modificar o objeto Roles. Os scripts TMSL podem ser executados no SSMS ou com o cmdlet Invoke-ASCmd PowerShell.
Consulte também
criar e gerenciar funções
perspectivas
Analisar no Excel
da função
função LOOKUPVALUE (DAX)