Gerenciar funções e usuários do banco de dados
No nível do banco de dados modelo, todos os usuários devem pertencer a uma função. As funções definem usuários com permissões específicas para o banco de dados modelo. Qualquer usuário ou grupo de segurança adicionado a uma função deve ter uma conta em um locatário do Microsoft Entra na mesma assinatura que o servidor.
A forma como você define as funções é diferente dependendo da ferramenta que você usa, mas o efeito é o mesmo.
As permissões de função incluem:
- Administrador - Os usuários têm permissões totais para o banco de dados. As funções de banco de dados com permissões de Administrador são diferentes dos administradores de servidor.
- Processo - Os usuários podem se conectar e executar operações de processo no banco de dados e analisar dados do banco de dados modelo.
- Leitura - Os usuários podem usar um aplicativo cliente para se conectar e analisar dados do banco de dados modelo.
Ao criar um projeto de modelo tabular, você cria funções e adiciona usuários ou grupos a essas funções usando o Gerenciador de Funções no Visual Studio com projetos do Analysis Services. Quando implantado em um servidor, use o SQL Server Management Studio (SSMS), cmdlets do Analysis Services PowerShell ou TMSL (Tabular Model Scripting Language) para adicionar ou remover funções e membros de usuário.
Ao adicionar um grupo de segurança, use obj:groupid@tenantid
.
Ao adicionar uma entidade de serviço, use app:appid@tenantid
.
Para adicionar ou gerenciar funções e usuários no Visual Studio
No Explorador de Modelos de Tabela, clique com o botão direito do rato em Funções.
No Gestor de Funções, clique em Nova.
Digite um nome para a função.
Por padrão, o nome da função padrão é numerado incrementalmente para cada nova função. Recomenda-se que escreva um nome que identifique claramente o tipo de membro, por exemplo, Gestores Financeiros ou Especialistas em Recursos Humanos.
Selecione uma das seguintes permissões:
Permissão Description Nenhuma Os membros não podem ler ou modificar o esquema do modelo e não podem consultar dados. Ler Os membros podem consultar dados (com base em filtros de linha), mas não podem modificar o esquema do modelo. Ler e processar Os membros podem consultar dados (com base em filtros de nível de linha) e executar as operações Process e Process All, mas não podem modificar o esquema do modelo. Processo Os membros podem executar as operações Process e Process All. Não é possível ler ou modificar o esquema do modelo e não é possível consultar dados. Administrador Os membros podem modificar o esquema do modelo e consultar todos os dados. Se a função que você está criando tiver permissão de Leitura ou Leitura e Processo, você poderá adicionar filtros de linha usando uma fórmula DAX. Clique na guia Filtros de Linha , selecione uma tabela, clique no campo Filtro DAX e digite uma fórmula DAX.
Clique em Membros>Adicionar Externo.
Em Adicionar Membro Externo, insira usuários ou grupos em seu ID do Microsoft Entra locatário por endereço de email. Depois de clicar em OK e fechar o Gerenciador de Funções, as funções e os membros da função aparecem no Gerenciador de Modelos de Tabela.
Implante em seu servidor do Azure Analysis Services.
Para adicionar ou gerenciar funções e usuários no SSMS
Para adicionar funções e usuários a um banco de dados modelo implantado, você deve estar conectado ao servidor como administrador do servidor ou já estar em uma função de banco de dados com permissões de administrador.
No Pesquisador de Objetos, clique com o botão direito do mouse em Nova Função de Funções>.
Em Criar Função, insira um nome e uma descrição da função.
Selecione uma permissão.
Permissão Description Controle total (Administrador) Os membros podem modificar o esquema do modelo, processar e consultar todos os dados. Base de dados de processos Os membros podem executar as operações Process e Process All. Não é possível modificar o esquema do modelo e não é possível consultar dados. Ler Os membros podem consultar dados (com base em filtros de linha), mas não podem modificar o esquema do modelo. Clique em Associação e, em seguida, introduza um utilizador ou grupo no seu inquilino Microsoft Entra ID por endereço de correio eletrónico.
Se a função que você está criando tiver permissão de Ler, você poderá adicionar filtros de linha usando uma fórmula DAX. Clique em Filtros de Linha, selecione uma tabela e digite uma fórmula DAX no campo Filtro DAX .
Para adicionar funções e usuários usando um script TMSL
Você pode executar um script TMSL na janela XMLA no SSMS ou usando o PowerShell. Use o comando CreateOrReplace e o objeto Roles .
Exemplo de script TMSL
Neste exemplo, um usuário externo B2B e um grupo são adicionados à função Analista com permissões de Leitura para o banco de dados SalesBI. Tanto o usuário externo quanto o grupo devem estar no mesmo ID do Microsoft Entra do locatário.
{
"createOrReplace": {
"object": {
"database": "SalesBI",
"role": "Analyst"
},
"role": {
"name": "Users",
"description": "All allowed users to query the model",
"modelPermission": "read",
"members": [
{
"memberName": "user1@contoso.com",
"identityProvider": "AzureAD"
},
{
"memberName": "group1@adventureworks.com",
"identityProvider": "AzureAD"
}
]
}
}
}
Para adicionar funções e usuários usando o PowerShell
O módulo SqlServer fornece cmdlets de gerenciamento de banco de dados específicos da tarefa e o cmdlet Invoke-ASCmd de uso geral que aceita uma consulta ou script TMSL (Tabular Model Scripting Language). Os cmdlets a seguir são usados para gerenciar funções e usuários de banco de dados.
Cmdlet | Description |
---|---|
Add-RoleMember | Adicione um membro a uma função de banco de dados. |
Remove-RoleMember | Remova um membro de uma função de banco de dados. |
Invocar-ASCmd | Execute um script TMSL. |
Filtros de linha
Os filtros de linha 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 de Leitura, Leitura e Processo. Por padrão, se um filtro de linha não estiver definido para uma tabela específica, os membros poderão consultar todas as linhas da tabela, a menos que a filtragem cruzada se aplique a partir de outra tabela.
Os filtros de linha exigem uma fórmula DAX, que deve ser avaliada com um valor TRUE/FALSE, para definir as linhas que podem ser consultadas pelos membros dessa função específica. As linhas não incluídas na fórmula DAX não podem ser consultadas. Por exemplo, a tabela Clientes com a seguinte expressão de filtros de linha, =Clientes [País] = "EUA", os membros da função Vendas só podem ver clientes nos EUA.
Os filtros de linha aplicam-se às linhas especificadas e à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 são cruzados com outros servidores de dados de linha definidos para tabelas relacionadas, por exemplo:
Tabela | Expressão DAX |
---|---|
País/Região | =Região[País]="EUA" |
ProductCategory | =ProductCategory[Name]="Bicicletas" |
Transações | =Transações[Ano]=2016 |
O efeito líquido é que os membros podem consultar linhas de dados onde o cliente está nos EUA, a categoria do produto é bicicletas e o ano é 2016. Os usuários não podem consultar transações fora dos EUA, transações que não sejam bicicletas ou transações que não sejam em 2016, a menos que sejam membros de outra função que conceda essas permissões.
Você pode usar o filtro, =FALSE(), para negar acesso a todas as linhas de uma tabela inteira.
Próximos passos
Gerir administradores de servidor
Gerir o Azure Analysis Services com o PowerShell
Referência de TMSL (Tabular Model Scripting Language)