Bygge inn en rapport på en lokal SQL Server Analysis Services (SSAS)
GJELDER FOR: Appen eier data Brukeren eier data
Denne artikkelen forklarer hvordan du bygger inn Power BI-innhold med en lokal Analysis Services Tabular Model live-tilkobling i en standard Power BI-app eier dataprogram. Denne artikkelen gjelder for alle SSAS-modeller for live-tilkobling, uansett om de implementerer RLS eller ikke.
I dette scenarioet er databasen på SSAS-modellen (lokal), og Power BI-motoren kobles til den via en gateway. Sikkerhetsrollene (RLS) og tillatelsene, hvis det finnes noen, er definert i SSAS-modellen, og ikke i Power BI Desktop.
Hvem denne artikkelen er for
Denne artikkelen er for det meste relevant for uavhengige programvareleverandører som allerede har et lokalt (SSAS)-databaseoppsett (med eller uten RLS) og ønsker å bygge inn innhold direkte derfra.
ISV-oppsett
Sikkerhet på lokalt radnivå er bare tilgjengelig med en live-tilkobling, men du kan opprette en live-tilkobling til en database uansett om den implementerer RLS eller ikke. Dette omfatter følgende:
- Databaser uten RLS-roller konfigurert
- Databaser med medlemmer som tilhører én eller flere roller
- Databaser med statiske eller dynamiske sikkerhetsroller
Hvis du vil bygge inn en rapport fra en SSAS-modell, må du gjøre følgende handlinger:
Konfigurere gatewayen
Legge til en datakildetilkobling i SSAS-gatewayen
Skriv inn datakildenavnet, datakildetypen, serveren, databasen, brukernavnet og passordet som active directory gjenkjenner.
Hvis du vil ha mer informasjon om hvordan du oppretter og administrerer en gateway, kan du se Legge til eller fjerne en gateway-datakilde.
Gi tjenestekontohaver- eller hovedbrukertillatelser på gatewayen
Brukeren som genererer innebyggingstokenet, trenger også én av følgende tillatelser:
Administratortillatelser for gateway
Tillatelse for representasjon av datakilde (ReadOverrideEffectiveIdentity)
Brukere med representasjonstillatelse (overstyring) har et nøkkelikon ved siden av navnet.
Følg disse instruksjonene for å gi gatewaytillatelser til hovedbrukeren, tjenestekontohaveren eller tjenestekontohaverprofilen.
Gjør ett av følgende:
Tilordne brukernavn
Hvis brukernavnene i den lokale katalogen og Microsoft Entra-katalogen er forskjellige og du vil vise data i portalen, må du opprette en brukertilordningstabell som tilordner hver bruker eller rolle i Microsoft Entra ID til brukere fra den lokale databasen. Hvis du vil ha instruksjoner om tilordning av brukernavn, kan du gå til manuell ommapping av brukernavn
Hvis du vil ha mer informasjon, kan du se Tilordne brukernavn for Analysis Services-datakilder.
Opprett en live-tilkobling
Når miljøet er konfigurert, oppretter du en live-tilkobling mellom Power BI Desktop og SQL Server og oppretter rapporten.
Start Power BI Desktop, og velg Hent datadatabase>.
Velg SQL Server Analysis Services-databasen fra datakildelisten, og velg Koble til.
Fyll ut tabellforekomstdetaljene for Analysis Services, og velg Koble til direkte. Velg deretter OK.
Generer et innebyggingstoken
Hvis du vil bygge inn rapporten i innebygging for kundescenarioet , genererer du et innebyggingstoken som sender den effektive identiteten til Power BI. Alle live-tilkoblinger til AS-motorer trenger en effektiv identitet selv om det ikke er implementert RLS.
Hvis det ikke er konfigurert RLS, er det bare administratoren som har tilgang til databasen, slik at du vil bruke administratoren som den effektive identiteten.
Informasjonen som kreves for å generere et innebyggingstoken, avhenger av om du er koblet til Power BI ved hjelp av en tjenestekontohaver eller som hovedbruker, og også om databasen har RLS.
- Innebyggingstoken for hovedbruker
- Innebyggingstoken for tjenestekontohaver eller tjenestekontohaverprofil
Hvis du vil generere innebyggingstokenet, kan du oppgi følgende informasjon:
- Brukernavn (valgfritt hvis ingen RLS. Obligatorisk for RLS) – et gyldig brukernavn gjenkjent av SSAS som skal brukes som den effektive identiteten. Hvis databasen ikke bruker RLS, og ingen brukernavn er angitt, brukes legitimasjonen til hovedbrukeren.
- Rolle (obligatorisk for RLS) – Rapporten viser bare data hvis den effektive identiteten er medlem av 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;
}
Nå kan du bygge inn rapporten i appen, og rapporten filtrerer data i henhold til tillatelsene til brukeren som får tilgang til rapporten.
Hensyn og begrensninger
CustomData støttes ikke.