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


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

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

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

Имя учетной записи Сведения
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 (SPNs)

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

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

  • С помощью командной строки администрирования создайте имя субъекта-службы для учетной записи службы SQL Server на Linux. Этот экземпляр использует порт по умолчанию 1433:

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

    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 должна получить билет службы Kerberos reportuser, который был предоставлен серверу PBIRS во время проверки подлинности. Расширение S4U2proxy обеспечивает необходимый переход протокола для передачи требуемых учетных данных без необходимости пересылать TGT пользователя (билет предоставления билета) или ключ сеанса пользователя.

Чтобы добиться этого, учетная запись службы PBIRS (pbirsservice в этом примере) и учетная запись службы SQL Server (linuxservice в этом примере) должны получить право доверенного для проверки подлинности для делегирования в домене. Существует несколько способов предоставления этого права (то есть, 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 (для перехода протокола) в учетной записи. Последние два командлета применяют полномочия делегирования к определенным ресурсам в домене, 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-документе и добавьте RSWindowsNegotiateRSWindowsKerberos атрибуты перед атрибутом 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 учетной записи и выберите Свойства. Разрешения отображаются на странице User Mapping.

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

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

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