Configurar bases de dados de catálogo do Servidor de Relatório do Power BI para SQL Server no Linux

Aplica-se a: SQL Server 2019 (15.x) e versões posteriores no Linux SQL Server Reporting Services (versões de 2019 e posteriores)

Este artigo explica como instalar e configurar as bases de dados do catálogo do Power BI Report Server (PBIRS) para SQL Server em Linux.

Pré-requisitos

Neste artigo, os exemplos usam o domínio CORPNET.CONTOSO.COMe a configuração a seguir.

Configurar máquinas

Máquina Sistema Operativo Detalhes
Controlador de domínio do Windows Windows Server 2019 ou Windows Server 2022
Desenvolvimento e implantação de relatórios (WIN19) Windows Server 2019, executando o Visual Studio 2019 - Desenvolvimento e implantação de relatórios

- Serviços de compartilhamento de arquivos para servir como um repositório para saída de relatório orientada por demanda ou agendada
Power BI Report Server (WIN22) Windows Server 2022, a correr uma versão suportada do Power BI Report Server (PBIRS)
Máquina do desenvolvedor Cliente Windows 11, executando o SQL Server Management Studio (SSMS)
SQL Server 2019 (rhel8test) Servidor Red Hat Enterprise Linux (RHEL) 8.x, a executar o SQL Server 2019 (15.x) com a atualização cumulativa (CU) mais recente

Configurar contas

Nome da conta Detalhes
CORPNET\cluadmin Conta de utilizador global. Conta de Administrador Local em todos os servidores Windows, exceto no controlador de domínio.
CORPNET\pbirsservice Conta de serviço PBIRS
CORPNET\linuxservice Conta de serviço do SQL Server (criada apenas para o ambiente SQL Server no Linux)
CORPNET\reportuser Conta de usuário global usada para simular um usuário normal do PBIRS

Este cenário de exemplo utiliza servidores e contas separadas para garantir que a delegação do Kerberos funciona corretamente (ou seja, lida com cenários de duplo salto).

Configuração do SQL Server no Linux

Antes de configurar (ou reconfigurar) o PBIRS para usar o SQL Server em Linux como backend para alojar as bases de dados do catálogo do Report Server, certifique-se de que a instância SQL Server em Linux está ligada ao domínio.

Para instalar, configurar adutil e aderir ao domínio, siga as instruções no Tutorial: Use o adutil para configurar a autenticação do Active Directory com SQL Server em Linux.

Note

Para obter informações sobre pacotes específicos no RHEL 8, consulte Conectando sistemas RHEL diretamente ao AD usando SSSD.

Nomes de entidade de serviço (SPNs) do SQL Server

Antes de instalar e configurar PBIRS, configure os SPNs necessários no CORPNET domínio. Pode usar uma conta com privilégios de Administrador de Domínio, mas qualquer conta com permissões suficientes para criar SPNs é suficiente. Depois de criares os SPNs, configura as contas para usarem delegação restrita pelo Kerberos.

Este cenário requer os seguintes SPNs mínimos:

  • A partir de um prompt de comandos administrativo, crie o SPN para a conta de serviço SQL Server em Linux. Esta instância usa a porta padrão 1433:

    setspn -S MSSQLSvc/rhel8test:1433 CORPNET\linuxservice
    setspn -S MSSQLSvc/rhel8test.CORPNET.CONTOSO.COM:1433 CORPNET\linuxservice
    
  • Os próximos dois SPNs são para a conta de serviço do Servidor de Relatório do Power BI.

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

Para gerir os requisitos do Kerberos para encaminhar tickets do Kerberos ao operar dentro de uma implementação de delegação restrita, configura-se a delegação usando a extensão da Microsoft para o standard Kerberos do MIT, conforme especificado no RFC 4120, e utiliza-se o Service for User to Proxy (S4U2proxy). Este mecanismo permite que o serviço PBIRS e o serviço SQL Server obtenham tickets de serviço para outros serviços especificados em nome de um utilizador.

Por exemplo, quando o reportuser se autentica na interface Web do servidor PBIRS para ver um relatório, o relatório é executado e tem de aceder a dados de uma origem de dados, como uma tabela do SQL Server. O serviço SQL Server tem de obter o reportuser bilhete de serviço Kerberos, que foi atribuído ao servidor PBIRS durante a autenticação. A extensão S4U2proxy fornece a transição de protocolo necessária para transmitir as credenciais necessárias sem encaminhar o ticket-granting ticket (TGT) nem a chave de sessão do utilizador.

Para alcançar este objetivo, conceda à conta de serviço PBIRS (pbirsserviceneste exemplo) e à conta de serviço SQL Server (linuxserviceneste exemplo) o direito Trusted To Authenticate para Delegação no domínio. Pode conceder este direito de várias formas (por exemplo, ADSI Edit ou a interface Computer and Users). Este exemplo utiliza um comando PowerShell elevado:

  • Obtenha a conta de serviço do SQL Server e defina-a para permitir delegação. Esta etapa não só permite a delegação Kerberos, como também a delegação S4U2proxy (para a transição dos protocolos) na conta. Os dois cmdlets finais aplicam a autoridade de delegação a recursos específicos no domínio, os SPNs para a instância do servidor SQL.

    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')}
    
  • Obtenha a conta de serviço do Servidor de Relatório do Power BI e defina-a para permitir a delegação. Esta etapa não só permite a delegação Kerberos, como também a delegação S4U2proxy (para a transição dos protocolos) na conta. Os quatro Set-ADUser cmdlets aplicam a permissão de delegação a recursos específicos no domínio, ou seja, aos SPNs do SQL Server e do servidor 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')}
    

Servidor de Relatório do Power BI (PBIRS)

Instale o PBIRS em modo apenas de configuração.

Imediatamente após a instalação do PBIRS, você deve configurá-lo para oferecer suporte à autenticação Kerberos. O PBIRS, por padrão, suporta apenas a autenticação NTLM. Durante a instalação, atualize um dos ficheiros de configuração PBIRS, seja na interface ou via linha de comandos, antes de concluir a configuração PBIRS. Se usar uma instalação PBIRS existente, faça as edições e reinicie o serviço PBIRS para que as alterações entrem em vigor. O ficheiro de configuração é rsreportserver.config. Fica no caminho onde o PBIRS está instalado. Por exemplo, em uma instalação padrão do PBIRS, o arquivo está no seguinte local:

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

Use qualquer editor de texto para editar este ficheiro XML. Copie o ficheiro antes de o editar. Depois de abrir o ficheiro, procure a etiqueta AuthenticationTypes no documento XML e adicione os elementos RSWindowsNegotiate e RSWindowsKerberos antes do elemento RSWindowsNTLM. Por exemplo:

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

Deve completar este passo porque o SQL Server em Linux suporta apenas autenticação SQL e Kerberos.

Note

Só precisas de incluir o RSWindowsKerberos elemento, mas RSWindowsNegotiate é útil se quiseres padronizar ficheiros de configuração PBIRS numa frota de servidores que suportam uma mistura de instâncias Windows e Linux SQL Server.

Configuração da interface do usuário do PBIRS

Depois de o serviço PBIRS ser reiniciado após as edições do ficheiro de configuração terem sido concluídas, pode prosseguir com as restantes opções de configuração PBIRS, como definir a conta de serviço baseada em domínio e ligar-se ao SQL Server em Linux remotamente.

A conta de serviço PBIRS deve aparecer na instância do SQL Server com as permissões apropriadas. Você pode verificar as permissões no SQL Server Management Studio (SSMS). No Object Explorer, navegue até Logins de Segurança>, clique com o botão direito naCORPNET\pbirsservice conta e selecione Propriedades. As permissões são visíveis na página Mapeamento de Usuários.

Por fim, adiciona o reportuser como login no SQL Server para fins de teste. Neste caso, escolheu a abordagem simples e adicionou o utilizador à db_datareader função fixa de base de dados dentro de duas bases de dados de utilizadores: AdventureWorks e AdventureWorksDW.

Após a distribuição dos relatórios

Se você precisar configurar assinaturas de relatório após a implantação dos relatórios, é uma boa prática configurar credenciais incorporadas nas fontes de dados PBIRS. Todas as opções de credenciais funcionam corretamente, exceto para o uso de credenciais incorporadas configuradas com a opção impersonar o usuário que está a visualizar o relatório. Esta etapa falha ao usar credenciais do Windows, devido a uma limitação na implementação do SQL Server no Linux que dificulta a representação.