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

Область применения: SQL Server 2019 (15.x) и более поздних версий — Службы SQL Server Reporting Services Linux (2019 и более поздние версии)

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

Необходимые компоненты

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

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

Компьютер Операционная система Сведения
Контроллер домена 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) с последним накопительным пакетом обновления

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

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

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

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

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

Вы можете установить и настроить adutil и присоединиться к домену, следуя инструкциям в руководстве. Используйте adutil для настройки проверки подлинности Active Directory с помощью SQL Server на Linux.

Примечание.

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

Имена субъектов-служб SQL Server (SPN)

Перед установкой и настройкой PBIRS необходимо настроить необходимые имена субъектов-служб в домене CORPNET . В этом случае можно использовать пользователя с правами администратора домена, но любой пользователь с достаточными разрешениями на создание имен субъектов-служб достаточно. После создания имени участника-службы необходимо настроить учетные записи для использования ограниченного делегирования Kerberos.

Ниже приведены минимальные обязательные имена субъектов-служб для этого сценария:

  • С помощью командной строки администрирования создайте имя субъекта-службы для учетной записи службы 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 при работе в рамках реализации ограниченного делегирования мы настраиваем делегирование с помощью расширения Майкрософт к стандарту MIT Kerberos, как указано в RFC 4120, и используйте службу для пользователя на прокси-сервер (S4U2proxy). Этот механизм позволяет службе PBIRS и службе SQL Server получать билеты на обслуживание в другие указанные службы от имени пользователя.

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

Чтобы добиться этого, учетная запись службы PBIRS (в этом примере) и учетная запись службы SQL Server (pbirsservicelinuxserviceв этом примере) должны быть предоставлены доверенным для проверки подлинности для делегирования прямо в домене. Существует несколько способов предоставления этого права (то есть, ADI Edit, Computer and Users UI и т. д.). В этом примере используется команда 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 (для перехода протокола) в учетной записи. Последние два командлета применяют центр делегирования к определенным ресурсам в домене, имена субъектов-служб для сервера 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 RSWindowsKerberos атрибуты перед атрибутом RSWindowsNTLM . Например:

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

Этот шаг необходим, так как SQL Server на Linux поддерживает только проверку подлинности SQL и Kerberos.

Примечание.

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

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

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

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

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

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

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