Jaa


Raportin upottaminen Azure Analysis Services (AAS) -tietokantaan

KOSKEE: Sovellus omistaa tiedot Käyttäjä omistaa tiedot

Tässä artikkelissa kerrotaan, miten voit upottaa Asiakkaille tarkoitettuun upotukseen Power BI -raportin, joka käyttää Azure Analysis Servicesiin (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, rivitason suojauksen kanssa tai ilman sitä.

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 userPrincipalName -usernamefunktiot, 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.

    A screenshot of creating a new role in Analysis Services server.

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

    A screenshot of giving a new role a new name and setting it to read only, in the general settings in Analysis Services server.

  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.

    A screenshot of adding users to a new role in Analysis Services server.

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

    A screenshot showing how to add the function customData to the DAX query in a new role in Analysis Services server.

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 katkea siirron aikana, kunhan päänimi, joka kutsuu upotustunnusta – muodosta tunnus -ohjelmointirajapintaa, on työtilan jäsen tai järjestelmänvalvoja.

Muistiinpano

Jos palvelun päänimi ei ole järjestelmänvalvoja etkä halua tehdä siitä työtilan järjestelmänvalvojaa siirtäessäsi mallia, siirrä malli erilliseen työtilaan, jossa voit antaa sille järjestelmänvalvojan 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 (pakollinen rivitason suojaukselle) – Raportti näyttää tietoja vain, jos käytössä olevat käyttäjätiedot ovat roolin jäseniä.

Esimerkki:

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

  • Jos rivitason suojausta ei käytetä:

Käytössä olevat käyttäjätiedot ei ole tarpeen määrittää.

  • 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 upotustunnuksella voi olla enintään 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 raportissa käytetyn rivitason suojauksen mukaan.