Osadzanie raportu w lokalnych usługach SQL Server Analysis Services (SSAS)

DOTYCZY: Aplikacja jest właścicielem danych Użytkownik jest właścicielem danych

W tym artykule wyjaśniono, jak osadzać zawartość usługi Power BI przy użyciu lokalnego połączenia modelu tabelarycznego usług Analysis Services na żywo w standardowej aplikacji usługi Power BI, która jest właścicielem aplikacji danych. Ten artykuł dotyczy wszystkich modeli SSAS połączeń na żywo niezależnie od tego, czy implementują zabezpieczenia na poziomie wiersza.

W tym scenariuszu baza danych znajduje się w modelu usług SSAS (lokalnie ), a aparat usługi Power BI łączy się z nią za pośrednictwem bramy. Role zabezpieczeń (RLS) i uprawnienia, jeśli istnieją, są zdefiniowane w modelu usług SSAS, a nie w programie Power BI Desktop.

KtoTo ten artykuł dotyczy

Ten artykuł dotyczy głównie niezależnych dostawców oprogramowania, którzy mają już lokalną konfigurację bazy danych (SSAS) (z zabezpieczeniami na poziomie wiersza lub bez zabezpieczeń na poziomie wiersza) i chcą osadzać zawartość bezpośrednio z tego miejsca.

Konfiguracja niezależnego dostawcy oprogramowania

Zabezpieczenia na poziomie wiersza lokalnego są dostępne tylko za pomocą połączenia na żywo, ale można utworzyć połączenie na żywo z dowolną bazą danych, niezależnie od tego, czy implementuje zabezpieczenia na poziomie wiersza. Obejmuje on:

  • Bazy danych bez skonfigurowanych ról zabezpieczeń na poziomie wiersza
  • Bazy danych z członkami należącymi do co najmniej jednej roli
  • Bazy danych ze statycznymi lub dynamicznymi rolami zabezpieczeń

Aby osadzić raport z modelu usług SSAS, należy wykonać następujące czynności:

  1. Konfigurowanie bramy
  2. Tworzenie połączenia na żywo
  3. Generowanie tokenu osadzania

Konfigurowanie bramy

Dodawanie połączenia ze źródłem danych do bramy usług SSAS

Wprowadź nazwę źródła danych, typ źródła danych, serwer, bazę danych, nazwę użytkownika i hasło rozpoznawane przez usługę Active Directory.

Aby uzyskać więcej informacji na temat tworzenia bramy i zarządzania nią, zobacz Dodawanie lub usuwanie źródła danych bramy.

Nadaj jednostce usługi lub użytkownikowi głównemu uprawnienia do bramy

Użytkownik generujący token osadzania wymaga również jednego z następujących uprawnień:

  • Uprawnienia administratora bramy

  • Uprawnienie personifikacji źródła danych (ReadOverrideEffectiveIdentity)

    Użytkownicy z uprawnieniami personifikacji (przesłonięcia) mają ikonę klucza obok swojej nazwy.

    Screenshot of a gateway member with a key icon next to their name.

Postępuj zgodnie z tymi instrukcjami, aby udzielić uprawnień bramy użytkownikowi głównemu, jednostce usługi lub profilowi jednostki usługi.

Mapuj nazwy użytkowników

Jeśli nazwy użytkowników w katalogu lokalnym i katalogu Microsoft Entra są inne i chcesz wyświetlić dane w portalu, musisz utworzyć tabelę mapowania użytkowników, która mapuje każdego użytkownika lub rolę w usłudze Microsoft Entra ID do użytkowników z lokalnej bazy danych. Aby uzyskać instrukcje dotyczące mapowania nazw użytkowników, przejdź do sekcji Ręczne ponowne mapowanie nazwy użytkownika

Aby uzyskać więcej informacji, zobacz Mapuj nazwy użytkowników dla źródeł danych usług Analysis Services.

Tworzenie połączenia na żywo

Po skonfigurowaniu środowiska utwórz połączenie na żywo między programem Power BI Desktop a serwerem SQL i utwórz raport.

  1. Uruchom program Power BI Desktop i wybierz pozycję Pobierz bazę danych>.

  2. Z listy źródeł danych wybierz bazę danych usług SQL Server Analysis Services i wybierz pozycję Połączenie.

    Connect to SQL Server Analysis Services Database.

  3. Wypełnij szczegóły wystąpienia tabelarycznego usług Analysis Services i wybierz pozycję Połączenie na żywo. Następnie wybierz opcję OK.

    Screenshot of Analysis Services details.

Generowanie tokenu osadzania

Aby osadzić raport w scenariuszu osadzania dla klientów, wygeneruj token osadzania, który przekazuje obowiązującą tożsamość do usługi Power BI. Wszystkie połączenia na żywo z aparatami AS wymagają efektywnej tożsamości, nawet jeśli nie zaimplementowano zabezpieczeń na poziomie wiersza.

Jeśli nie skonfigurowano zabezpieczeń na poziomie wiersza, tylko Administracja ma dostęp do bazy danych, więc chcesz użyć Administracja jako obowiązującej tożsamości.

Informacje potrzebne do wygenerowania tokenu osadzania zależą od tego, czy nawiązano połączenie z usługą Power BI przy użyciu jednostki usługi lub użytkownika głównego, a także jeśli baza danych ma zabezpieczenia na poziomie wiersza.

Aby wygenerować token osadzania, podaj następujące informacje:

  • Nazwa użytkownika (opcjonalnie, jeśli nie ma zabezpieczeń na poziomie wiersza. Wymagane dla zabezpieczeń na poziomie wiersza) — prawidłowa nazwa użytkownika rozpoznana przez usługę SSAS, która będzie używana jako efektywna tożsamość. Jeśli baza danych nie używa zabezpieczeń na poziomie wiersza i nie zostanie podana żadna nazwa użytkownika, używane są poświadczenia użytkownika głównego.
  • Rola (wymagana dla zabezpieczeń na poziomie wiersza) — raport będzie wyświetlał dane tylko wtedy, gdy efektywna tożsamość jest członkiem roli.

Przykład:

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 możesz osadzić raport w aplikacji, a raport będzie filtrować dane zgodnie z uprawnieniami użytkownika, który uzyskuje dostęp do raportu.

Rozważania i ograniczenia

Funkcja CustomData nie jest obsługiwana.

Generowanie tokenu osadzania