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 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, 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
-username
funktiot, jos korvaat ne kohteella customData
.
Näiden ohjeiden avulla voit luoda uuden roolin ja lisätä funktion customData
rooliin.
Luo rooli Analysis Services -palvelimessa.
Anna Yleisissä asetuksissa roolin nimi ja määritä tietokannan käyttöoikeuksiksi vain luku.
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.
Määritä rivisuodattimien asetuksissa DAX-kysely käyttämällä -funktiota
CUSTOMDATA()
.
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.