Incorporar um relatório em um SQL Server Analysis Services (SSAS) local
APLICA-SE A: App possui dados O usuário possui dados
Este artigo explica como incorporar conteúdo do Power BI com uma conexão ao vivo do Modelo de Tabela do Analysis Services local em um aplicativo padrão do Power BI que possui um aplicativo de dados. Este artigo aplica-se a todos os modelos SSAS de conexão em tempo real, quer implementem ou não RLS.
Nesse cenário, o banco de dados está no modelo SSAS (local) e o mecanismo do Power BI se conecta a ele por meio de um gateway. As funções de segurança (RLS) e permissões, se houver, são definidas no modelo SSAS e não no Power BI Desktop.
A quem se destina este artigo
Este artigo é principalmente relevante para ISVs que já têm uma configuração de banco de dados local (SSAS) (com ou sem RLS) e desejam incorporar conteúdo diretamente de lá.
Configuração de ISV
A segurança em nível de linha local só está disponível com uma conexão ao vivo, mas você pode criar uma conexão ao vivo com qualquer banco de dados, quer ele implemente ou não RLS. O que está incluído:
- Bancos de dados sem funções RLS configuradas
- Bancos de dados com membros que pertencem a uma ou mais funções
- Bancos de dados com funções de segurança estáticas ou dinâmicas
Para incorporar um relatório de um modelo SSAS, você precisa executar as seguintes ações:
Configurar o gateway
Adicionar uma conexão de fonte de dados ao gateway SSAS
Insira o nome da fonte de dados, o tipo de fonte de dados, o servidor, o banco de dados, um nome de usuário e uma senha que o Ative Directory reconhece.
Para obter mais informações sobre como criar e gerenciar um gateway, consulte Adicionar ou remover uma fonte de dados de gateway.
Conceder permissões de entidade de serviço ou usuário mestre no gateway
O usuário que gera o token de incorporação também precisa de uma das seguintes permissões:
Permissões de administrador do gateway
Permissão de representação da fonte de dados (ReadOverrideEffectiveIdentity)
Os usuários com permissão de representação (substituição) têm um ícone de chave ao lado do nome.
Siga estas instruções para conceder permissões de gateway ao seu usuário mestre, entidade de serviço ou perfil da entidade de serviço.
Proceda de uma das seguintes formas:
Mapa Nomes de utilizador
Se os nomes de usuário no diretório local e no diretório do Microsoft Entra forem diferentes e você quiser exibir dados no portal, será necessário criar uma tabela de mapeamento de usuário que mapeie cada usuário ou função no Microsoft Entra ID para usuários do banco de dados local. Para obter instruções sobre como mapear nomes de usuário, vá para Remapeamento manual de nomes de usuário
Para obter mais informações, consulte Mapear nomes de usuário para fontes de dados do Analysis Services.
Criar uma ligação em direto
Depois que o ambiente estiver configurado, crie uma conexão ao vivo entre o Power BI Desktop e o servidor SQL e crie seu relatório.
Inicie o Power BI Desktop e selecione Obter Banco>de Dados de Dados.
Na lista de fontes de dados, selecione o Banco de Dados do SQL Server Analysis Services e selecione Conectar.
Preencha os detalhes da instância tabular do Analysis Services e selecione Conectar ao vivo. Em seguida, selecione OK.
Gerar um token de incorporação
Para incorporar seu relatório no cenário de incorporação para seus clientes, gere um token de incorporação que passe a identidade efetiva para o Power BI. Todas as conexões ao vivo com mecanismos AS precisam de uma identidade eficaz, mesmo que não haja RLS implementada.
Se não houver RLS configurado, apenas o administrador tem acesso ao banco de dados, então você deseja usar o administrador como a identidade efetiva.
As informações necessárias para gerar um token de incorporação dependem se você está conectado ao Power BI usando uma entidade de serviço ou como um usuário mestre, e também se o banco de dados tem RLS.
- Token de incorporação do usuário mestre
- Token de incorporação da entidade de serviço ou do perfil da entidade de serviço
Para gerar o token de incorporação, forneça as seguintes informações:
- Nome de utilizador (Opcional se não houver RLS. Necessário para RLS) - Um nome de usuário válido reconhecido pelo SSAS que será usado como a identidade efetiva. Se o banco de dados não usar RLS e nenhum nome de usuário for fornecido, as credenciais do usuário mestre serão usadas.
- Função (necessária para RLS) - O relatório só exibirá dados se a identidade efetiva for um membro da função.
Exemplo:
public EmbedToken GetEmbedToken(Guid reportId, IList<Guid> datasetIds, [Optional] Guid targetWorkspaceId)
{
PowerBIClient pbiClient = this.GetPowerBIClient();
// Define the user identity and roles. Use one of the following:
var rlsidentity = new EffectiveIdentity( //If no RLS
username: "Domain\\Username", // can also be username@contoso.com
datasets: new List<string>{ datasetId.ToString()}
)
var rlsidentity = new EffectiveIdentity( // If RLS
username: "username@contoso.com",
roles: new List<string>{ "MyRole" },
datasets: new List<string>{ datasetId.ToString()}
)
// Create a request for getting an embed token for the rls identity defined above
var tokenRequest = new GenerateTokenRequestV2(
reports: new List<GenerateTokenRequestV2Report>() { new GenerateTokenRequestV2Report(reportId) },
datasets: datasetIds.Select(datasetId => new GenerateTokenRequestV2Dataset(datasetId.ToString())).ToList(),
targetWorkspaces: targetWorkspaceId != Guid.Empty ? new List<GenerateTokenRequestV2TargetWorkspace>() { new GenerateTokenRequestV2TargetWorkspace(targetWorkspaceId) } : null,
identities: new List<EffectiveIdentity> { rlsIdentity }
);
// Generate an embed token
var embedToken = pbiClient.EmbedToken.GenerateToken(tokenRequest);
return embedToken;
}
Agora você pode incorporar seu relatório em seu aplicativo, e ele filtrará os dados de acordo com as permissões do usuário que acessa o relatório.
Considerações e limitações
CustomData não é suportado.