Поделиться через


Внедрение отчета в локальную среду SQL Server Analysis Services (SSAS)

ОБЛАСТЬ ПРИМЕНЕНИЯ: Приложение владеет данными, принадлежащими пользователю данных

В этой статье объясняется, как внедрить содержимое Power BI с локальнымтабличным подключением к табличной модели Служб Analysis Services в стандартное приложение Power BI, которое владеет приложением данных. Эта статья относится ко всем моделям SSAS динамического подключения независимо от того, реализуют ли они RLS.

В этом сценарии база данных находится в модели SSAS (локальной среде), а подсистема Power BI подключается к ней через шлюз. Роли безопасности (RLS) и разрешения, если есть, определены в модели SSAS, а не в Power BI Desktop.

Кто для этой статьи

Эта статья в основном относится к независимым поставщикам программного обеспечения, у которых уже есть локальная настройка базы данных (SSAS) (с RLS или без нее) и хотите внедрить содержимое непосредственно изтуда.

Настройка поставщика программного обеспечения

Безопасность локальной строки доступна только с динамическим подключением, но вы можете создать динамическое подключение к любой базе данных независимо от того, реализует ли она RLS. В том числе:

  • Базы данных без ролей RLS, настроенных
  • Базы данных с участниками, принадлежащими одной или нескольким ролям
  • Базы данных со статическими или динамическими ролями безопасности

Чтобы внедрить отчет из модели SSAS, необходимо выполнить следующие действия:

  1. Настройка шлюза
  2. Создание динамического подключения
  3. Создание маркера внедрения

Настройка шлюза

Добавление подключения источника данных к шлюзу SSAS

Введите имя источника данных, тип источника данных, сервер, базу данных, имя пользователя и пароль, распознаваемые Active Directory.

Дополнительные сведения о создании шлюза и управлении ими см. в статье "Добавление или удаление источника данных шлюза".

Предоставление разрешений субъекта-службы или главного пользователя на шлюзе

Пользователю, создающим маркер внедрения, также требуется одно из следующих разрешений:

  • Разрешения администратора шлюза

  • Разрешение олицетворения источника данных (ReadOverrideEffectiveIdentity)

    У пользователей с разрешением на олицетворения (переопределение) есть значок ключа рядом с именем.

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

Следуйте этим инструкциям, чтобы предоставить разрешения шлюза главному пользователю, субъекту-службе или профилю субъекта-службы.

Сопоставление имен пользователей

Если имена пользователей в локальном каталоге и каталоге Microsoft Entra отличаются и вы хотите просмотреть данные на портале, необходимо создать таблицу сопоставления пользователей, которая сопоставляет каждого пользователя или роль в идентификаторе Microsoft Entra с пользователями из локальной базы данных. Инструкции по сопоставлению имен пользователей см. в разделе "Повторное сопоставление имен пользователей вручную"

Дополнительные сведения см. в разделе "Сопоставление имен пользователей" для источников данных Служб Analysis Services.

Создание активного подключения

После настройки среды создайте динамическое подключение между Power BI Desktop и SQL Server и создайте отчет.

  1. Запустите Power BI Desktop и выберите "Получить базу данных".>

  2. В списке источников данных выберите базу данных SQL Server Analysis Services и выберите Подключение.

    Connect to SQL Server Analysis Services Database.

  3. Заполните сведения о табличном экземпляре служб Analysis Services и выберите Подключение трансляции. Затем выберите OK.

    Screenshot of Analysis Services details.

Создание маркера внедрения

Чтобы внедрить отчет в сценарии внедрения для клиентов, создайте маркер внедрения, который передает эффективное удостоверение в Power BI. Все динамические подключения к подсистемам AS нуждаются в эффективном удостоверении, даже если нет RLS.

Если нет RLS, только Администратор имеет доступ к базе данных, поэтому вы хотите использовать Администратор в качестве эффективного удостоверения.

Сведения, необходимые для создания маркера внедрения, зависят от того, подключены ли вы к Power BI с помощью субъекта-службы или в качестве главного пользователя, а также, если база данных имеет RLS.

Чтобы создать маркер внедрения, укажите следующие сведения:

  • Имя пользователя (необязательно, если нет RLS. Требуется для RLS) — допустимое имя пользователя, распознаемое службой SSAS, которая будет использоваться в качестве эффективного удостоверения. Если база данных не использует RLS, а имя пользователя не указано, используются учетные данные главного пользователя.
  • Роль (необходимая для RLS) — отчет будет отображать только данные, если эффективное удостоверение является членом роли.

Пример:

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

Теперь вы можете внедрить отчет в приложение, и отчет будет фильтровать данные в соответствии с разрешениями пользователя, обращаюющегося к отчету.

Рекомендации и ограничения

CustomData не поддерживается.

Создание маркера внедрения