Integrer en rapport i et lokalt SQL Server Analysis Services (SSAS)
GÆLDER FOR: Appen ejer data
Brugeren ejer data
I denne artikel forklares det, hvordan du integrerer Power BI-indhold med en direkte forbindelse til analysis services-tabelmodellen i et standardprogram i Power BI, der ejer data. Denne artikel gælder for alle SSAS-modeller med direkte forbindelse, uanset om de implementerer sikkerhed på rækkeniveau eller ej.
I dette scenarie er databasen på SSAS-modellen (i det lokale miljø), og Power BI-programmet opretter forbindelse til den via en gateway. Sikkerhedsrollerne (RLS) og tilladelserne, hvis der er nogen, er defineret i SSAS-modellen og ikke i Power BI Desktop.
Hvem denne artikel er til
Denne artikel er mest relevant for ISV'er, der allerede har en SSAS-databasekonfiguration (med eller uden sikkerhed på rækkeniveau) og ønsker at integrere indhold direkte derfra.
ISV-konfiguration
Sikkerhed på rækkeniveau i det lokale miljø er kun tilgængelig med en direkte forbindelse, men du kan oprette en direkte forbindelse til en hvilken som helst database, uanset om den implementerer sikkerhed på rækkeniveau eller ej. Dette omfatter:
- Databaser uden RLS-roller er konfigureret
- Databaser med medlemmer, der tilhører en eller flere roller
- Databaser med statiske eller dynamiske sikkerhedsroller
Hvis du vil integrere en rapport fra en SSAS-model, skal du udføre følgende handlinger:
Konfigurer gatewayen
Føj en datakildeforbindelse til SSAS-gatewayen
Angiv navnet på datakilden, datakildetypen, Server, database, et brugernavn og en adgangskode, som active directory genkender.
Du kan få flere oplysninger om oprettelse og administration af en gateway under Tilføj eller fjern en gatewaydatakilde.
Giv tjenesteprincipalen eller masterbrugertilladelserne til gatewayen
Den bruger, der genererer integreringstokenet, skal også have en af følgende tilladelser:
Tilladelser til gatewayadministrator
Datasource repræsenter tilladelse (ReadOverrideEffectiveIdentity)
Brugere med tilladelsen Repræsenter (tilsidesættelse) har et nøgleikon ud for deres navn.
Følg disse instruktioner for at tildele gatewaytilladelser til din masterbruger, tjenesteprincipal eller tjenesteprincipalprofil.
Benyt en af følgende fremgangsmåder:
Tilknyt brugernavne
Hvis brugernavnene i mappen i det lokale miljø og Microsoft Entra-mappen er forskellige, og du vil have vist data på portalen, skal du oprette en brugertilknytningstabel, der knytter hver bruger eller rolle i Microsoft Entra-id til brugere fra databasen i det lokale miljø. Hvis du vil have vejledning i tilknytning af brugernavne, skal du gå til Manuel genmapping af brugernavn
Du kan få flere oplysninger under Knyt brugernavne til Analysis Services-datakilder.
Opret en direkte forbindelse
Når miljøet er konfigureret, skal du oprette en direkte forbindelse mellem Power BI Desktop og SQL-serveren og oprette din rapport.
Start Power BI Desktop, og vælg Hent datadatabase>.
Vælg SQL Server Analysis Services-databasen på listen over datakilder, og vælg Opret forbindelse.
Udfyld oplysningerne om din Analysis Services-tabelforekomst, og vælg Opret liveforbindelse. Vælg derefter OK.
Generér et integreringstoken
Hvis du vil integrere din rapport i scenariet integrer for dine kunder , skal du generere et integreringstoken , der overfører den effektive identitet til Power BI. Alle direkte forbindelser til AS-motorer skal have en effektiv identitet, selvom der ikke er implementeret nogen sikkerhed på rækkeniveau.
Hvis der ikke er konfigureret nogen sikkerhed på rækkeniveau, er det kun administratoren, der har adgang til databasen, så du vil bruge administratoren som den effektive identitet.
De oplysninger, der er nødvendige for at generere et integreringstoken, afhænger af, om du har forbindelse til Power BI ved hjælp af en tjenesteprincipal eller som masterbruger, og også om databasen har sikkerhed på rækkeniveau.
Hvis du vil generere integreringstokenet, skal du angive følgende oplysninger:
- Brugernavn (valgfrit, hvis der ikke er nogen sikkerhed på rækkeniveau. Påkrævet til sikkerhed på rækkeniveau) – Et gyldigt brugernavn, der genkendes af SSAS, som bruges som den effektive identitet. Hvis databasen ikke bruger sikkerhed på rækkeniveau, og der ikke er angivet noget brugernavn, bruges masterbrugerens legitimationsoplysninger.
- Rolle (kræves til sikkerhed på rækkeniveau) – Rapporten viser kun data, hvis den effektive identitet er medlem af rollen.
Eksempel:
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 integrere din rapport i din app, hvorefter din rapport filtrerer data i henhold til tilladelserne for den bruger, der har adgang til rapporten.
Overvejelser og begrænsninger
CustomData understøttes ikke.