Een rapport insluiten in een on-premises SQL Server Analysis Services (SSAS)

Van toepassing op:✅ Power BI ingesloten analyses voor uw klanten (App-owns-data)

In dit artikel wordt uitgelegd hoe u Power BI-inhoud insluit met een liveverbinding van een on-premisesTabellair 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

On-premises-beveiliging op rijniveau is alleen beschikbaar met een live verbinding, maar u kunt een live verbinding maken met elke database, of die nu wel of geen beveiliging op rijniveau implementeert. Dit zijn onder andere de nieuwe mogelijkheden:

  • Databases zonder geconfigureerde RLS-rollen
  • 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:

  1. Gateway instellen
  2. Een liveverbinding maken
  3. Een insluittoken genereren

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 de service-principal of hoofdgebruiker machtigingen voor de gateway

De gebruiker die het insluittoken genereert, heeft ook een van de volgende machtigingen nodig:

  • Gatewaybeheerdersmachtigingen

  • Machtiging om zich als gegevensbron voor te doen (ReadOverrideEffectiveIdentity)

    Gebruikers met de machtiging om zich voor te doen als een andere gebruiker (overschrijven) hebben een sleutelpictogram naast hun naam.

    Schermopname van een gatewaylid met een sleutelpictogram naast hun naam.

Volg deze instructies om machtigingen voor de gateway te verlenen aan uw primaire gebruiker, service-principal of service-principal-profiel.

Gebruikersnamen koppelen

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. Ga voor instructies over het opnieuw toewijzen van gebruikersnamen naar Gebruikersnamen handmatig opnieuw toewijzen

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.

  1. Start Power BI Desktop en selecteer Gegevens ophalen>Database.

  2. Selecteer in de lijst met gegevensbronnen de SQL Server Analysis Services-database en selecteer Verbinding maken.

    Maak verbinding met SQL Server Analysis Services Database.

  3. Vul de details van uw tabellaire Analysis Services-exemplaar in en selecteer Live verbinding maken. Selecteer vervolgens OK.

    Schermafbeelding van de details van Analysis Services.

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 live verbindingen met AS-engines vereisen een effectieve identiteit, zelfs als RLS niet 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 indien er geen RLS is. Vereist voor RLS) - Een geldige gebruikersnaam die door SSAS wordt herkend en als de effectieve identiteit wordt gebruikt. Als de database geen RLS gebruikt en er geen gebruikersnaam is opgegeven, worden de referenties van de hoofdgebruiker gebruikt.
  • Rol (vereist voor RLS) - Het rapport geeft alleen gegevens weer 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.

Een insluittoken genereren