Raportin upottaminen Azure Analysis Services (AAS) -tietokantaan

Koskee seuraavia:✅ Power BI asiakkaille upotettu analytiikka (sovellus omistaa tiedot)

Tässä artikkelissa kerrotaan, miten voit upottaa Asiakkaille tarkoitettuun upotukseen Power BI -raportin, joka käyttää Azure Analysis Services (AAS) tallennettuja tietoja. Tämä artikkeli on tarkoitettu riippumattomille ohjelmistokehittäjille, jotka haluavat upottaa AAS-tietoihin raportin siitä riippumatta, käyttääkö tietokanta rivitason suojausta (RLS).

Edellytykset

Tarvitset raportin, jossa on reaaliaikainen yhteys AAS-tietokantaan, RLS:n kanssa tai ilman.

Dynaaminen suojaus – RLS

Jos haluat raporttisi toteuttavan dynaamisen rivitason suojauksen, käytä -funktiota customeData . Koska et voi ohittaa käytössä olevia käyttäjätietoja, suosittelemme luomaan uusia rooleja :n avulla customData. Voit myös käyttää rooleja, joilla on - tai username -userPrincipalNamefunktiot, jos korvaat ne kohteella customData.

Näiden ohjeiden avulla voit luoda uuden roolin ja lisätä funktion customData rooliin.

  1. Luo rooli Analysis Services -palvelimessa.

    Näyttökuva uuden roolin luomisesta Analysis Services -palvelimessa.

  2. Anna Yleisissä asetuksissa roolin nimi ja määritä tietokannan käyttöoikeuksiksi vain luku.

    Näyttökuva uuden roolin antamisesta uudeksi nimeksi ja sen määrittämisestä vain luku -arvoksi Analysis Services -palvelimen yleisissä asetuksissa.

  1. Lisää Jäsenyys-asetuksissa käyttäjät, jotka aikovat kutsua upotustunnusta – muodosta tunnus -ohjelmointirajapinta. Jos käytät palvelun päänimeä, joka ei ole järjestelmänvalvoja, lisää myös se.

    Näyttökuva käyttäjien lisäämisestä uuteen rooliin Analysis Services -palvelimessa.

  2. Määritä rivisuodattimien asetuksissa DAX-kysely käyttämällä -funktiotaCUSTOMDATA().

    Näyttökuva, joka näyttää, miten voit lisätä customData-funktion DAX-kyselyyn uudessa roolissa Analysis Services -palvelimessa.

Palvelun päänimi

Jos käytät raportin upottamiseen palvelun päänimeä, varmista, että palvelun päänimi on palvelimen järjestelmänvalvoja tai AAS:n roolijäsen. Jos haluat myöntää AAS-järjestelmänvalvojan käyttöoikeudet palvelun päänimeen, katso Palvelun päänimen lisääminen palvelimen järjestelmänvalvojan rooliin. Jos haluat lisätä palvelun päänimen roolin jäseneksi, siirry jäsenyysasetuksiin.

Käytä palvelun päänimen objektitunnusta käyttäjänimenä (voimassa olevat käyttäjätiedot).

Analysis Service -siirto

Voit siirtyä AAS-palvelusta Power BI Premiumiin , vaikka sinulla olisi upotettu AAS-raportti. Upotettu raporttisi ei hajoa migraation aikana, kunhan päähenkilö, joka kutsuu Embed Token - Generate Token API:n, on työtilan jäsen tai ylläpitäjä.

Muistiinpano

Jos palvelupäällikkö ei ole ylläpitäjä, etkä halua tehdä siitä työtilan ylläpitäjää siirron yhteydessä, siirrä malli erilliseen työtilaan, jossa voit antaa sille ylläpitäjäoikeudet.

Upotustunnuksen luominen

Muodosta muodosta tunnus -ohjelmointirajapinnan avulla upotustunnus, joka ohittaa käytössä olevat käyttäjätiedot.

Upotustunnuksen luomiseen tarvittavat tiedot määräytyvät sen mukaan, miten olet muodostanut yhteyden Power BI:hin (palvelun päänimi vai pääkäyttäjä) ja onko tietokannassa RLS.

Voit luoda upotustunnuksen antamalla seuraavat tiedot:

  • Käyttäjänimi (Valinnainen, jos rivitason suojausta ei ole). Pakollinen rivitason suojaukselle) – Käyttäjänimen on oltava sama kuin ohjelmointirajapinnan kutsujan (tässä tapauksessa pääkäyttäjän UPN:n) on oltava sama. Jos tietokanta ei käytä rivitason suojausta eikä käyttäjänimeä ole annettu, pääkäyttäjän tunnistetietoja käytetään.
  • Rooli (vaaditaan RLS:lle) – Raportti näyttää tietoja vain, jos tehokas identiteetti on roolin jäsen.

Esimerkki:

Määritä käyttäjätiedot ja roolit jossakin seuraavista kolmesta skenaariosta:

  • Jos rivitason suojausta ei käytetä:

Sinun ei tarvitse määritellä mitään tehokasta identiteettiä.

  • Jos käytössä on staattinen rivitason suojaus:

        var rlsidentity = new EffectiveIdentity(  //If static RLS
           username: "username@contoso.com", 
           roles: new List<string>{ "MyRole" },
           datasets: new List<string>{ datasetId.ToString()}
        )
    
  • Jos käytössä on dynaaminen rivitason suojaus:

        var rlsidentity = new EffectiveIdentity(  // If dynamic RLS
           username: "username@contoso.com",
           roles: new List<string>{ "MyRoleWithCustomData" },
           customData: "SalesPersonA"
           datasets: new List<string>{ datasetId.ToString()}
        )
    

    Muistiinpano

    customData Embed-tokenissa ei saa olla suurempi kuin 1 024 merkkiä.

Käytä voimassa olevia käyttäjätietoja upotustunnuksen luomiseen:

public EmbedToken GetEmbedToken(Guid reportId, IList<Guid> datasetIds, [Optional] Guid targetWorkspaceId)
{
    PowerBIClient pbiClient = this.GetPowerBIClient();
    // 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 } // Only in cases of RLS
    );
    // Generate an embed token
    var embedToken = pbiClient.EmbedToken.GenerateToken(tokenRequest);
    return embedToken;
}

Upotustunnuksen avulla voit upottaa raportin sovellukseesi tai sivustoosi. Raporttisi suodattaa tiedot raportin soveltavan RLS:n mukaan.