Настройка баз данных каталога для SQL Server в системе Linux на Сервере отчетов Power BI.

Применимо к: SQL Server 2019 (15.x) и более поздним версиям на Linux и SQL Server Reporting Services (2019 и более поздним версиям)

В этой статье объясняется, как установить и настроить базу данных каталога Сервер отчетов Power BI (PBIRS) для SQL Server на Linux.

Prerequisites

В этой статье примеры используют домен CORPNET.CONTOSO.COMи следующую конфигурацию.

Настройка компьютеров

Компьютер Операционная система Details
Контроллер домена Windows Windows Server 2019 или Windows Server 2022
Разработка отчетов и развертывание (WIN19) Windows Server 2019 под управлением Visual Studio 2019 — Разработка отчетов и развертывание

— службы совместного использования файлов, используемые в качестве хранилища для отчетов по запросу или по расписанию
SQL Server Reporting Services (Службы отчетов) (WIN22) Windows Server 2022 под управлением поддерживаемой версии Сервер отчетов Power BI (PBIRS) 1
Компьютер разработчика Клиент Windows 11 под управлением SQL Server Management Studio (SSMS)
SQL Server 2019 (rhel8test) Red Hat Enterprise Linux (RHEL) 8.x Server, работающий на SQL Server 2019 (15.x) с последним кумулятивным обновлением (CU)

Настройка учетных записей

Имя учетной записи Details
CORPNET\cluadmin Глобальная учетная запись пользователя. Учетная запись локального администратора на всех серверах Windows, кроме контроллера домена.
CORPNET\pbirsservice Учетная запись службы PBIRS
CORPNET\linuxservice Учетная запись службы SQL Server (созданная только для среды SQL Server на Linux)
CORPNET\reportuser Глобальная учетная запись пользователя, используемая для имитации обычного пользователя PBIRS

В этом примере используется отдельные серверы и отдельные учетные записи для обеспечения корректной работы делегирования Kerberos (то есть он обрабатывает сценарии двойного перехода).

конфигурация SQL Server на Linux

Перед тем как настроить (или перенастроить) PBIRS для использования SQL Server на Linux в качестве бэкенда для размещения баз данных каталога Report Server, убедитесь, что экземпляр SQL Server на Linux соединен с доменом.

Чтобы установить, настроить adutil и присоединиться к домену, следуйте инструкциям из учебника: используйте adutil для настройки аутентификации Active Directory с помощью SQL Server на Linux.

Note

Сведения о конкретных пакетах в RHEL 8 см. в разделе "Подключение систем RHEL непосредственно к AD с помощью SSSD".

Имена главных служб SQL Server (SPNs)

Перед установкой и настройкой PBIRS настройте необходимые SPN на CORPNET домене. Можно использовать аккаунт с правами администратора домена, но любой аккаунт с достаточными правами для создания SPN подойдёт. После создания SPN настройте учетные записи так, чтобы они использовали ограниченную делегацию Kerberos.

Для этого сценария требуется следующие минимальные SPN:

  • Из административной командной строки создайте SPN для сервисной учетной записи SQL Server на Linux. В этом экземпляре используется стандартный порт 1433:

    setspn -S MSSQLSvc/rhel8test:1433 CORPNET\linuxservice
    setspn -S MSSQLSvc/rhel8test.CORPNET.CONTOSO.COM:1433 CORPNET\linuxservice
    
  • Следующие две учетные записи службы предназначены для учетной записи службы Сервер отчетов Power BI.

    setspn -S HTTP/WIN22.CORPNET.CONTOSO.COM CORPNET\pbirsservice
    setspn -S HTTP/WIN22 CORPNET\pbirsservice
    

Для выполнения требований Kerberos по пересылке заявок Kerberos при работе в рамках реализации ограниченной делегации, вы настраиваете делегацию с помощью расширения Microsoft стандарта MIT, как указано в RFC 4120, и используете Service for User to Proxy (S4U2proxy). Этот механизм позволяет сервисам PBIRS и SQL Server получать тикеты на другие указанные сервисы от имени пользователя.

Например, при reportuser аутентификации через веб-интерфейс сервера PBIRS для просмотра отчёта отчёт запускается и должен получать доступ к данным из источника данных, например, из таблицы SQL Server. Сервис SQL Server должен получить reportuser сервисный билет Kerberos, который был выдан серверу PBIRS при аутентификации. Расширение S4U2proxy обеспечивает необходимый переход протокола для передачи необходимых учетных данных без пересылки TGT пользователя (билета, выдающего билет) или сессионного ключа пользователя.

Для достижения этого результата предоставите аккаунтуpbirsservice PBIRS (в данном примере) и аккаунте SQL Server (linuxserviceв данном примере) Trusted To Authenticate для делегирования прямо в домене. Вы можете предоставить это право несколькими способами (например, ADSI Edit или интерфейс Computer and Users). В этом примере используется команда повышенной PowerShell:

  • Получите учетную запись службы SQL Server и задайте ее для разрешения делегирования. Этот шаг включает в себя не только делегирование Kerberos на учетной записи, но и делегирование S4U2proxy (для перехода протокола). Последние два командлета применяют полномочия на делегирование к конкретным ресурсам в домене, в частности имена объектов служб для SQL Server.

    Get-ADUser -Identity linuxservice | Set-ADAccountControl -TrustedToAuthForDelegation $True
    Set-ADUser -Identity linuxservice -Add @{'msDS-AllowedToDelegateTo'=@('MSSQLSvc/rhel8test.CORPNET.CONTOSO.COM:1433')}
    Set-ADUser -Identity linuxservice -Add @{'msDS-AllowedToDelegateTo'=@('MSSQLSvc/rhel8test:1433')}
    
  • Получите учетную запись службы Сервер отчетов Power BI и задайте ее для разрешения делегирования. Этот шаг включает в себя не только делегирование Kerberos на учетной записи, но и делегирование S4U2proxy (для перехода протокола). Последние два командлета применяют полномочия делегирования к определенным ресурсам в домене, SPN (имена субъектов-служб) для серверов SQL Server и PBIRS.

    Get-ADUser -Identity pbirsservice | Set-ADAccountControl -TrustedToAuthForDelegation $True
    Set-ADUser -Identity pbirsservice -Add @{'msDS-AllowedToDelegateTo'=@('MSSQLSvc/rhel8test.CORPNET.CONTOSO.COM:1433')}
    Set-ADUser -Identity pbirsservice -Add @{'msDS-AllowedToDelegateTo'=@('MSSQLSvc/rhel8test:1433')}
    Set-ADUser -Identity pbirsservice -Add @{'msDS-AllowedToDelegateTo'=@('HTTP/Win22.CORPNET.CONTOSO.COM')}
    Set-ADUser -Identity pbirsservice -Add @{'msDS-AllowedToDelegateTo'=@('HTTP/Win22')}
    

Сервер отчетов Power BI (PBIRS)

Установите PBIRS в режиме только конфигурации .

Сразу после установки PBIRS необходимо настроить его для поддержки проверки подлинности Kerberos. PBIRS по умолчанию поддерживает только проверку подлинности NTLM. Во время установки обновите один из конфигурационных файлов PBIRS либо в интерфейсе, либо через командную строку, прежде чем завершить конфигурацию PBIRS. Если вы используете существующую установку PBIRS, внесите правки и перезапустите сервис PBIRS, чтобы изменения вступили в силу. Файл конфигурации — это rsreportserver.config. Он находится на пути, где установлен PBIRS. Например, при установке PBIRS по умолчанию файл находится в следующем расположении:

C:\Program Files\Microsoft SQL Server Reporting Services\SSRS\ReportServer

Используйте любой текстовый редактор для редактирования этого XML-файла. Скопируйте файл перед редактированием. После открытия файла найдите AuthenticationTypes тег внутри XML-документа и добавьте RSWindowsNegotiate атрибуты and RSWindowsKerberos перед атрибутом RSWindowsNTLM . Рассмотрим пример.

<Authentication>
<AuthenticationTypes>
    <RSWindowsNegotiate/>
    <RSWindowsKerberos/>
    <RSWindowsNTLM/>
</AuthenticationTypes>

Вы должны выполнить этот шаг, потому что SQL Server на Linux поддерживает только аутентификацию SQL и Kerberos.

Note

Нужно указать только атрибутRSWindowsKerberos, но RSWindowsNegotiate это полезно, если вы хотите стандартизировать конфигурационные файлы PBIRS на флоте серверов, поддерживающих смесь экземпляров SQL Server Windows и Linux.

Конфигурация пользовательского интерфейса PBIRS

После перезапуска службы PBIRS после завершения редактирования файла конфигурации можно продолжить с оставшимися параметрами конфигурации PBIRS, такими как настройка учетной записи службы на основе домена и подключение к удаленному экземпляру SQL Server на Linux.

Учетная запись службы PBIRS должна отображаться в экземпляре SQL Server с соответствующими разрешениями. Вы можете проверить разрешения в SQL Server Management Studio (SSMS). В Обозревателе объектов перейдите к Безопасность > Входы в систему, щелкните правой кнопкой мыши на CORPNET\pbirsservice учетной записи и выберите Свойства. Разрешения отображаются на странице User Mapping.

Наконец, добавьте reportuser их как логин на SQL Server для тестирования. В этом случае вы выбрали простой подход и добавили пользователя в роль db_datareader фиксированной базы данных внутри двух пользовательских баз данных: AdventureWorks и AdventureWorksDW.

После развертывания отчетов

Если после развертывания отчётов необходимо настроить подписки на них, рекомендуется сконфигурировать внедренные учетные данные в источниках данных PBIRS. Все параметры учетных данных работают правильно, за исключением использования встроенных учетных данных, настроенных при работе от имени пользователя, просматривающего отчет. Этот шаг завершается ошибкой при использовании учетных данных Windows из-за ограничения в реализации SQL Server на Linux, что затрудняет имперсонацию.