Configurar bancos de dados de catálogo do Servidor de Relatórios do Power BI para o SQL Server no Linux

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

Este artigo explica como instalar e configurar o banco de dados do catálogo do Servidor de Relatórios do Power BI (PBIRS) para o SQL Server no Linux.

Pré-requisitos

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

Configurar computadores

Computer Sistema operacional 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 Visual Studio 2019 - Desenvolvimento e implantação de relatórios

- Serviços de compartilhamento de arquivos para servir como repositório para saída de relatório orientada por demanda ou programada
SQL Server Reporting Services (WIN22) Windows Server 2022, executando uma versão compatível do Servidor de Relatórios do Power BI (PBIRS) 1
Computador do desenvolvedor Cliente Windows 11 executando o SQL Server Management Studio (SSMS)
SQL Server 2019 (rhel8test) Red Hat Enterprise Linux (RHEL) 8.x Server, executando o SQL Server 2019 (15.x) com a mais recente CU

Configurar contas

Nome da conta Detalhes
CORPNET\cluadmin Conta de usuário local. Conta de administrador local em todos os servidores do Windows, exceto no controlador de domínio.
CORPNET\pbirsservice Conta de serviço do PBIRS
CORPNET\linuxservice Conta de serviço 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

Neste cenário de exemplo, são usados servidores separados e contas separadas para garantir que a delegação Kerberos esteja funcionando corretamente (ou seja, que os cenários de salto duplo estejam sendo tratados).

Configuração do SQL Server em Linux

Antes de prosseguir com a configuração (ou reconfiguração) do PBIRS para usar o SQL Server no Linux como back-end para hospedar os bancos de dados de catálogo do servidor de relatório, verifique se a instância do SQL Server no Linux foi associada ao domínio.

Você pode instalar e configurar o adutil e ingressar no domínio seguindo as instruções do Tutorial: usar o adutil para configurar a autenticação do Active Directory com o SQL Server no Linux.

Observação

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

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

Antes de instalar e configurar o PBIRS, é preciso configurar os SPNs necessários no domínio.CORPNET Pode ser usado um usuário com privilégios de administrador de domínio nesse caso, mas qualquer usuário com as permissões adequadas para criar SPNs já é o suficiente. Após a criação do SPN, as contas devem ser configuradas para usar a delegação restrita de Kerberos.

Apresentamos os SPNs mínimos necessários para esse cenário:

  • Usando um prompt de comando administrativo, crie o SPN para a conta de serviço do SQL Server no Linux. Essa instância está usando a porta padrão de 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órios do Power BI.

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

Para lidar com os requisitos do Kerberos para o encaminhamento de tíquetes do Kerberos, ao operar dentro de uma implementação de delegação restrita, configuramos a delegação usando a extensão da Microsoft ao padrão Kerberos MIT, conforme especificado na RFC 4120, e usamos oServiço de usuário para o proxy (S4U2proxy). Esse mecanismo permite que o serviço PBIRS e o serviço SQL Server obtenham tíquetes de serviço para outros serviços especificados em nome de um usuário.

Por exemplo, quando o reportuser fizer autenticação com a interface da Web do servidor PBIRS para exibir um relatório, o relatório será executado e precisará acessar dados de uma fonte de dados como uma tabela do SQL Server. O serviço SQL Server deve obter o tíquete de serviço Kerberos reportuser, que foi concedido durante o processo de autenticação ao servidor PBIRS. A extensão S4U2proxy provê a transição de protocolo necessária para passar as credenciais necessárias sem ter que encaminhar o TGT (tíquete de concessão de tíquete) do usuário ou a chave da sessão do usuário.

Para conseguir isso, a conta de serviço PBIRS (pbirsservice neste exemplo) e a conta de serviço do SQL Server (linuxservice neste exemplo) precisam receber o direito Confiável para autenticação de delegação no domínio. Há várias maneiras de conceder esse direito (ou seja, Editor ASDI, interface de usuários e computadores, etc.). Usamos um comando elevado do PowerShell neste exemplo:

  • Obtenha a conta de serviço SQL Server e a configure para permitir delegação. Esta etapa habilita não apenas a delegação do Kerberos, mas também a delegação do S4U2proxy (para a transição de protocolo) 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 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')}
    
  • Obtenha a conta de serviço do Servidor de Relatórios do Power BI e a configure para permitir delegação. Esta etapa habilita não apenas a delegação do Kerberos, mas também a delegação do S4U2proxy (para a transição de protocolo) na conta. Os dois cmdlets finais aplicam a delegação de autoridade a recursos específicos no domínio: os 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')}
    

Portal do Servidor de Relatórios do Power BI (PBIRS)

O PBIRS deve ser instalado no modo de somente configuração.

Imediatamente após a instalação do PBIRS, é necessário configurá-lo para dar suporte à autenticação Kerberos. Por padrão, o PBIRS dá suporte apenas à autenticação NTLM. Durante o processo de instalação, é preciso atualizar um dos arquivos de configuração do PBIRS antes de concluir o processo de configuração do PBIRS, na interface do usuário ou por meio da linha de comando. Mesmo que você use uma instalação PBIRS existente, precisará executar as edições, e o serviço PBIRS deverá ser reiniciado para entrar em vigor. O arquivo de configuração é:rsreportserver.config. Ele está no caminho em que o PBIRS foi instalado. Por exemplo, em uma instalação padrão do PBIRS, o arquivo está na seguinte localização:

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

Esse arquivo XML pode ser editado em qualquer editor de texto. Lembre-se de fazer uma cópia do arquivo antes de editá-lo. Depois de abrir o arquivo, procure a marca AuthenticationTypes no documento XML e adicione os atributos RSWindowsNegotiate e RSWindowsKerberos antes do atributo RSWindowsNTLM. Por exemplo:

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

Essa etapa é necessária, pois o SQL Server no Linux oferece suporte apenas às autenticações SQL e Kerberos.

Observação

Só é preciso incluir o atributo RSWindowsKerberos, mas o uso de RSWindowsNegotiate será útil caso deseje a padronização de arquivos de configuração PBIRS em uma frota de servidores que oferecem suporte a uma mistura de instâncias do SQL Server Windows e Linux.

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

Depois do reinício do serviço PBIRS após a conclusão das edições do arquivo de configuração, você poderá prosseguir com as opções de configuração do PBIRS restantes, como definir a conta de serviço baseada em domínio e conectar-se à instância remota do SQL Server no Linux.

A conta de serviço PBIRS deverá 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 Pesquisador de Objetos, navegue até Segurança > Logons, clique com o botão direito do mouse na conta CORPNET\pbirsservice e selecione Propriedades. As permissões ficarão visíveis na página Mapeamento de usuário.

Por fim, podemos adicionar o reportuser como um logon no SQL Server para finalidades de teste. Nesse caso, pegamos o botão fácil e adicionamos o usuário à função db_datareader dentro de dois bancos de dados de usuários: AdventureWorks e AdventureWorksDW.

Depois da implantação dos relatórios

Caso você precisar configurar inscrições no relatório depois que os eles forem implantados, é uma boa prática configurar credenciais incorporadas nas fontes de dados do PBIRS. Todas as opções de credenciais funcionam corretamente, exceto o uso de credenciais incorporadas configuradas com a opção representar o usuário que está visualizando o relatório . Esta etapa falha quando usa credenciais do Windows devido a uma limitação na implementação do SQL Server no Linux que torna a representação mais difícil.