Vloženie zostavy do lokálnej služby SQL Server Analysis Services (SSAS)

Vzťahuje sa na:✅ Power BI vloženej analýzy pre vašich zákazníkov (údaje vo vlastníctve aplikácie)

Tento článok vysvetľuje, ako vložiť obsah služby Power BI pomocou lokálneho dynamického pripojenia tabuľkového modelu služby Analysis Services do štandardnej aplikácie služby Power BI vlastní údaje. Tento článok sa vzťahuje na všetky modely SSAS s dynamickým pripojením bez ohľadu na to, či implementujú alebo nemajú implementované zabezpečenie na úrovni riadkov.

V tomto scenári je databáza v lokálnom modeli SSAS a nástroj Power BI sa k nej pripojí cez bránu. Roly zabezpečenia (RLS) a povolenia, ak existujú, sú definované v modeli SSAS a nie v aplikácii Power BI Desktop.

Kto je určený pre

Tento článok je väčšinou relevantný pre nezávislých dodávateľov softvéru, ktorí už majú nastavenú lokálnu databázu (SSAS) (so zabezpečením na úrovni riadkov alebo bez nej) a chcú tam vložiť obsah priamo.

Nastavenie nezávislých dodávateľov softvéru

Lokálne zabezpečenie na úrovni riadkov je k dispozícii len s dynamickým pripojením, ale môžete vytvoriť dynamické pripojenie k akejkoľvek databáze bez ohľadu na to, či implementuje zabezpečenie na úrovni riadkov. Sú to tieto:

  • Databázy bez nastavenia rolí zabezpečenia na úrovni riadkov
  • Databázy s členmi, ktorí patria do jednej alebo viacerých rolí
  • Databázy so statickými alebo dynamickými rolami zabezpečenia

Ak chcete vložiť zostavu z modelu SSAS, musíte vykonať tieto akcie:

  1. Nastavenie brány
  2. Vytvorenie dynamického pripojenia
  3. Generovanie vkladacieho tokenu

Nastavenie brány

Pridanie pripojenia zdroja údajov k bráne SSAS

Zadajte názov zdroja údajov, typ zdroja údajov, server, databázu, meno používateľa a heslo, ktoré služba Active Directory rozpozná.

Ďalšie informácie o vytváraní a spravovaní brány nájdete v téme Pridanie alebo odstránenie zdroja údajov brány.

Udelenie povolení objektu služby alebo hlavného používateľa pre bránu

Používateľ, ktorý generuje vkladací token, potrebuje aj jedno z nasledujúcich povolení:

  • Povolenia správcu brány

  • Povolenie zosobniť zdroj údajov (ReadOverrideEffectiveIdentity)

    Používatelia s povolením na zosobnenie (prepísanie) majú vedľa svojho mena ikonu kľúča.

    Snímka obrazovky člena brány s ikonou kľúča vedľa jeho názvu.

Postupujte podľa týchto pokynov a udeľte povolenia brány hlavnému používateľovi, objektu služby alebo hlavnému profilu služby.

Priradiť mená používateľov

Ak sú mená používateľov v lokálnom adresári a adresári Microsoft Entra odlišné a chcete zobraziť údaje na portáli, musíte vytvoriť tabuľku priradení používateľov, ktorá priraďuje každého používateľa alebo rolu v ID Microsoft Entra k používateľom z lokálnej databázy. Pokyny na mapovanie mien používateľov nájdete v časti Opätovné mapovanie manuálneho mena používateľa

Ďalšie informácie nájdete v téme Mapovanie mien používateľov pre zdroje údajov služby Analysis Services.

Vytvorenie dynamického pripojenia

Keď je prostredie nastavené, vytvorte dynamické pripojenie medzi aplikáciou Power BI Desktop a SQL Serverom a vytvorte zostavu.

  1. Spustite aplikáciu Power BI Desktop a vyberte položku Získať údaje>Databáza.

  2. Zo zoznamu zdrojov údajov vyberte možnosť Databáza služby SQL Server Analysis Services a položku Pripojiť.

    Pripojte sa k databáze služby SQL Server Analysis Services.

  3. Vyplňte údaje tabuľkovej inštancie služby Analysis Services a vyberte položku Pripojiť naživo. Potom vyberte OK.

    Snímka obrazovky s podrobnosťami o službe Analysis Services.

Generovanie vkladacieho tokenu

Ak chcete vložiť zostavu do scenára vkladania obsahu pre zákazníkov, vygenerujte vkladací token, ktorý odovzdá efektívnu identitu službe Power BI. Všetky dynamické pripojenia k modulom AS potrebujú efektívnu identitu, dokonca aj vtedy, ak nie je implementované žiadne zabezpečenie na úrovni riadkov.

Ak nie je nastavené žiadne zabezpečenie na úrovni riadkov, prístup k databáze má len správca, takže chcete ako efektívnu identitu použiť správcu.

Informácie potrebné na vygenerovanie vkladacieho tokenu závisia od toho, či ste pripojení k službe Power BI pomocou objektu služby alebo ako hlavný používateľ, a tiež ak databáza obsahuje zabezpečenie na úrovni riadkov.

Ak chcete generovať vkladací token, zadajte nasledujúce informácie:

  • Meno používateľa (voliteľné, ak nie je k dispozícii RLS. Vyžaduje sa pre zabezpečenie na úrovni riadkov) – platné meno používateľa rozpoznané službou SSAS, ktoré sa použije ako efektívna identita. Ak databáza nepoužíva zabezpečenie na úrovni riadkov a nie je zadané žiadne meno používateľa, použijú sa prihlasovacie údaje hlavného používateľa.
  • Rola (vyžaduje sa pre zabezpečenie na úrovni riadkov) – zostava zobrazí údaje iba v prípade, že je členom roly efektívna identita.

Príklad:

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;
}

Teraz môžete vložiť zostavu do aplikácie a zostava bude filtrovať údaje podľa povolení používateľa, ktorý pristupuje k zostave.

Dôležité informácie a obmedzenia

Funkcia CustomData nie je podporovaná.

Generovanie vkladacieho tokenu