Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к:✅ встроенная аналитика Power BI для ваших клиентов (App-owns-data)
В этой статье объясняется, как встраивать содержимое Power BI с подключением в режиме реального времени к локальнойтабличной модели Analysis Services в стандартное приложение Power BI типа «app owns data». Эта статья относится ко всем моделям SSAS динамического подключения независимо от того, реализуют ли они RLS.
В этом сценарии база данных находится в модели SSAS (локальной среде), а подсистема Power BI подключается к ней через шлюз. Роли безопасности (RLS) и разрешения, если есть, определены в модели SSAS, а не в Power BI Desktop.
Кому эта статья предназначена
Эта статья в основном предназначена для независимых поставщиков программного обеспечения, у которых уже есть локально развернутая база данных (SSAS) (с RLS или без него) и которые хотят встраивать контент напрямую оттуда.
Настройка ISV
Безопасность локальной строки доступна только с динамическим подключением, но вы можете создать динамическое подключение к любой базе данных независимо от того, реализует ли она RLS. Сюда входит следующее:
- Базы данных, в которых не настроены роли RLS
- Базы данных с участниками, принадлежащими одной или нескольким ролям
- Базы данных со статическими или динамическими ролями безопасности
Чтобы внедрить отчет из модели SSAS, необходимо выполнить следующие действия:
Настройка шлюза
Добавление подключения источника данных к шлюзу SSAS
Введите имя источника данных, тип источника данных, сервер, базу данных, имя пользователя и пароль, распознаваемые Active Directory.
Дополнительные сведения о создании шлюза и управлении ими см. в статье "Добавление или удаление источника данных шлюза".
Предоставление разрешений субъекта-службы или главного пользователя на шлюзе
Пользователю, создающим маркер внедрения, также требуется одно из следующих разрешений:
Разрешения администратора шлюза
Разрешение олицетворения источника данных (ReadOverrideEffectiveIdentity)
У пользователей с правом входа от имени другого пользователя (override) рядом с именем отображается значок ключа.
Следуйте этим инструкциям, чтобы предоставить основному пользователю, субъекту-службе или профилю субъекта-службы разрешения на доступ к шлюзу.
Выполните одно из следующих действий:
Сопоставить имена пользователей
Если имена пользователей в локальном каталоге и каталоге 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 не поддерживается.