Внедрение отчета в локальную среду 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, необходимо выполнить следующие действия:
Настройка шлюза
Добавление подключения источника данных к шлюзу SSAS
Введите имя источника данных, тип источника данных, сервер, базу данных, имя пользователя и пароль, распознаваемые Active Directory.
Дополнительные сведения о создании шлюза и управлении ими см. в статье "Добавление или удаление источника данных шлюза".
Предоставление разрешений субъекта-службы или главного пользователя на шлюзе
Пользователю, создающим маркер внедрения, также требуется одно из следующих разрешений:
Разрешения администратора шлюза
Разрешение олицетворения источника данных (ReadOverrideEffectiveIdentity)
У пользователей с разрешением на олицетворения (переопределение) есть значок ключа рядом с именем.
Следуйте этим инструкциям, чтобы предоставить разрешения шлюза главному пользователю, субъекту-службе или профилю субъекта-службы.
Выполните одно из следующих действий:
Сопоставление имен пользователей
Если имена пользователей в локальном каталоге и каталоге Microsoft Entra отличаются и вы хотите просмотреть данные на портале, необходимо создать таблицу сопоставления пользователей, которая сопоставляет каждого пользователя или роль в идентификаторе Microsoft Entra с пользователями из локальной базы данных. Инструкции по сопоставлению имен пользователей см. в разделе "Повторное сопоставление имен пользователей вручную"
Дополнительные сведения см. в разделе "Сопоставление имен пользователей" для источников данных Служб Analysis Services.
Создание активного подключения
После настройки среды создайте динамическое подключение между Power BI Desktop и SQL Server и создайте отчет.
Запустите Power BI Desktop и выберите "Получить базу данных".>
В списке источников данных выберите базу данных SQL Server Analysis Services и выберите Подключение.
Заполните сведения о табличном экземпляре служб Analysis Services и выберите Подключение трансляции. Затем выберите OK.
Создание маркера внедрения
Чтобы внедрить отчет в сценарии внедрения для клиентов, создайте маркер внедрения, который передает эффективное удостоверение в 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 не поддерживается.