Een rapport insluiten in een on-premises SQL Server Analysis Services (SSAS)
VAN TOEPASSING OP: App is eigenaar van gegevens die gebruiker eigenaar is van gegevens
In dit artikel wordt uitgelegd hoe u Power BI-inhoud insluit met een liveverbinding van een on-premises Tabellair Model van Analysis Services in een standaard Power BI-app die eigenaar is van de gegevenstoepassing. Dit artikel is van toepassing op alle SSAS-modellen voor liveverbindingen, ongeacht of ze RLS implementeren.
In dit scenario bevindt de database zich in het SSAS-model (on-premises) en maakt de Power BI-engine er verbinding mee via een gateway. De beveiligingsrollen (RLS) en machtigingen, indien aanwezig, worden gedefinieerd in het SSAS-model en niet in Power BI Desktop.
Voor wie dit artikel is
Dit artikel is voornamelijk relevant voor ISV's die al een on-premises database (SSAS) hebben ingesteld (met of zonder RLS) en inhoud rechtstreeks van daaruit willen insluiten.
ISV-installatie
Beveiliging op on-premises rijniveau is alleen beschikbaar met een liveverbinding, maar u kunt een liveverbinding maken met elke database, ongeacht of er beveiliging op rijniveau wordt geïmplementeerd. Dit zijn onder andere de nieuwe mogelijkheden:
- Databases zonder RLS-rollen ingesteld
- Databases met leden die tot een of meer rollen behoren
- Databases met statische of dynamische beveiligingsrollen
Als u een rapport wilt insluiten vanuit een SSAS-model, moet u de volgende acties uitvoeren:
De gateway instellen
Een gegevensbronverbinding toevoegen aan de SSAS-gateway
Voer de naam van de gegevensbron, het gegevensbrontype, de server, de database, een gebruikersnaam en wachtwoord in die door de Active Directory worden herkend.
Zie Een gatewaygegevensbron toevoegen of verwijderen voor meer informatie over het maken en beheren van een gateway.
Geef service-principal- of hoofdgebruikersmachtigingen op de gateway
De gebruiker die het insluittoken genereert, heeft ook een van de volgende machtigingen nodig:
Gatewaybeheerdersmachtigingen
Machtiging voor gegevensbron-imitatie (ReadOverrideEffectiveIdentity)
Gebruikers met een machtiging voor imitatie (onderdrukking) hebben een sleutelpictogram naast hun naam.
Volg deze instructies om gatewaymachtigingen te verlenen aan uw hoofdgebruiker, service-principal of service-principalprofiel.
Ga op een van de volgende manieren te werk:
Gebruikersnamen toewijzen
Als de gebruikersnamen in de on-premises directory en de Microsoft Entra-map verschillen en u gegevens wilt weergeven in de portal, moet u een gebruikerstoewijzingstabel maken waarmee elke gebruiker of rol in Microsoft Entra-id wordt toegewezen aan gebruikers uit de on-premises database. Voor instructies voor het toewijzen van gebruikersnamen gaat u naar Handmatig opnieuw toewijzen van gebruikersnaam
Zie Gebruikersnamen toewijzen voor Analysis Services-gegevensbronnen voor meer informatie.
Een liveverbinding maken
Zodra de omgeving is ingesteld, maakt u een liveverbinding tussen Power BI Desktop en de SQL-server en maakt u uw rapport.
Start Power BI Desktop en selecteer Gegevensdatabase> ophalen.
Selecteer in de lijst met gegevensbronnen de SQL Server Analysis Services-database en selecteer Verbinding maken.
Vul de details van uw tabellaire Analysis Services-exemplaar in en selecteer Live verbinding maken. Selecteer vervolgens OK.
Een insluittoken genereren
Als u uw rapport wilt insluiten in het scenario voor het insluiten van uw klanten , genereert u een insluittoken dat de effectieve identiteit doorgeeft aan Power BI. Alle liveverbindingen met AS-engines hebben een effectieve identiteit nodig, zelfs als er geen RLS is geïmplementeerd.
Als er geen RLS is ingesteld, heeft alleen de beheerder toegang tot de database, zodat u de beheerder als effectieve identiteit wilt gebruiken.
De informatie die nodig is om een insluittoken te genereren, is afhankelijk van of u bent verbonden met Power BI met behulp van een service-principal of als hoofdgebruiker, en ook als de database RLS heeft.
Geef de volgende informatie op om het insluittoken te genereren:
- Gebruikersnaam (optioneel als er geen RLS is. Vereist voor beveiliging op rijniveau: een geldige gebruikersnaam die wordt herkend door de SSAS die wordt gebruikt als de effectieve identiteit. Als de database geen RLS gebruikt en er geen gebruikersnaam is opgegeven, worden de referenties van de hoofdgebruiker gebruikt.
- Rol (vereist voor beveiliging op rijniveau): in het rapport worden alleen gegevens weergegeven als de effectieve identiteit lid is van de rol.
Voorbeeld:
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;
}
U kunt uw rapport nu insluiten in uw app en uw rapport filtert gegevens op basis van de machtigingen van de gebruiker die het rapport opent.
Overwegingen en beperkingen
CustomData wordt niet ondersteund.