Bädda in en rapport på en lokal SQL Server Analysis Services (SSAS)

GÄLLER FÖR: Appen äger data Användaren äger data

Den här artikeln beskriver hur du bäddarin Power BI-innehåll med en lokal Analysis Services Tabular Model live-anslutning till en vanlig Power BI-app som äger dataprogram. Den här artikeln gäller för alla SSAS-modeller för liveanslutning oavsett om de implementerar RLS eller inte.

I det här scenariot finns databasen på SSAS-modellen (lokal) och Power BI-motorn ansluter till den via en gateway. Säkerhetsrollerna (RLS) och behörigheterna, om det finns några, definieras i SSAS-modellen och inte i Power BI Desktop.

Vem den här artikeln är till för

Den här artikeln är mest relevant för ISV:er som redan har en lokal databasinstallation (SSAS) (med eller utan RLS) och som vill bädda in innehåll direkt därifrån.

ISV-installation

Säkerhet på lokal radnivå är endast tillgängligt med en live-anslutning, men du kan skapa en live-anslutning till valfri databas oavsett om den implementerar RLS eller inte. Detta omfattar:

  • Databaser utan konfigurerade RLS-roller
  • Databaser med medlemmar som tillhör en eller flera roller
  • Databaser med statiska eller dynamiska säkerhetsroller

Om du vill bädda in en rapport från en SSAS-modell måste du göra följande:

  1. Konfigurera gatewayen
  2. Skapa en live-anslutning
  3. Generera en inbäddningstoken

Konfigurera gatewayen

Lägga till en datakällaanslutning till SSAS-gatewayen

Ange Datasource-namnet, datakällans typ, Server, databas, ett användarnamn och lösenord som active directory identifierar.

Mer information om hur du skapar och hanterar en gateway finns i Lägga till eller ta bort en gateway-datakälla.

Ge tjänstens huvudnamn eller huvudanvändare behörigheter på gatewayen

Användaren som genererar inbäddningstoken behöver också någon av följande behörigheter:

  • Administratörsbehörigheter för gateway

  • Behörighet att personifiera datakälla (ReadOverrideEffectiveIdentity)

    Användare med behörighet att personifiera (åsidosätta) har en nyckelikon bredvid sitt namn.

    Screenshot of a gateway member with a key icon next to their name.

Följ de här anvisningarna för att bevilja gatewaybehörigheter till huvudanvändaren, tjänstens huvudnamn eller tjänstens huvudnamnsprofil.

Mappa användarnamn

Om användarnamnen i den lokala katalogen och Microsoft Entra-katalogen är olika och du vill visa data i portalen måste du skapa en användarmappningstabell som mappar varje användare eller roll i Microsoft Entra-ID till användare från den lokala databasen. Anvisningar om mappning av användarnamn finns i Manuell mappning av användarnamn

Mer information finns i Mappa användarnamn för Analysis Services-datakällor.

Skapa en live-anslutning

När miljön har konfigurerats skapar du en live-anslutning mellan Power BI Desktop och SQL-servern och skapar rapporten.

  1. Starta Power BI Desktop och välj Hämta datadatabas>.

  2. I listan över datakällor väljer du SQL Server Analysis Services-databasen och väljer Anslut.

    Connect to SQL Server Analysis Services Database.

  3. Fyll i information om analysis services-tabellinstansen och välj Anslut live. Välj sedan OK.

    Screenshot of Analysis Services details.

Generera en inbäddningstoken

Om du vill bädda in rapporten i scenariot för inbäddning för dina kunder genererar du en inbäddningstoken som skickar den effektiva identiteten till Power BI. Alla live-anslutningar till AS-motorer behöver en effektiv identitet även om det inte finns någon implementerad RLS.

Om det inte finns någon RLS-konfiguration har bara administratören åtkomst till databasen så du vill använda administratören som den effektiva identiteten.

Vilken information som behövs för att generera en inbäddningstoken beror på om du är ansluten till Power BI med hjälp av tjänstens huvudnamn eller som huvudanvändare, och även om databasen har RLS.

Om du vill generera inbäddningstoken anger du följande information:

  • Användarnamn (valfritt om inget RLS. Krävs för RLS) – ett giltigt användarnamn som identifieras av SSAS som ska användas som den effektiva identiteten. Om databasen inte använder RLS och inget användarnamn anges används huvudanvändarens autentiseringsuppgifter.
  • Roll (krävs för RLS) – Rapporten visar endast data om den effektiva identiteten är medlem i rollen.

Exempel:

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;
}

Nu kan du bädda in rapporten i appen och rapporten filtrerar data enligt behörigheterna för användaren som kommer åt rapporten.

Beaktanden och begränsningar

CustomData stöds inte.

Generera en inbäddningstoken