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 posterior - Linux
SQL Server Reporting Services (2019 e posterior)
Este artigo explica como instalar e configurar o banco de dados de catálogo do Servidor de Relatório do Power BI (PBIRS) para SQL Server no Linux.
Pré-requisitos
Neste artigo, os exemplos usam o domínio CORPNET.CONTOSO.COM
e 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 |
SQL Server Reporting Services (WIN22 ) |
Windows Server 2022, executando uma versão suportada do Servidor de Relatório do Power BI (PBIRS) 1 | |
Máquina do desenvolvedor | Cliente Windows 11, executando o SQL Server Management Studio (SSMS) | |
SQL Server 2019 (rhel8test ) |
Red Hat Enterprise Linux (RHEL) 8.x Server, a executar o SQL Server 2019 (15.x) com a atualização cumulativa 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 |
Servidores separados e contas separadas são usados neste cenário de exemplo para garantir que a delegação Kerberos esteja funcionando corretamente (ou seja, cenários de salto duplo estão sendo manipulados).
Configuração do SQL Server no 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 do 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 adutile ingressar no domínio, seguindo as instruções em Tutorial: Use adutil para configurar a autenticação do Ative Directory com o SQL Server no Linux.
Observação
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 o PBIRS, você deve configurar os SPNs necessários no domínio CORPNET
. Um usuário com privilégios de administrador de domínio pode ser usado nesse caso, mas qualquer usuário com permissões suficientes para criar SPNs é suficiente. Após a criação do SPN, as contas precisam ser configuradas para usar a delegação restrita de Kerberos.
Aqui estão os SPNs mínimos necessários para este cenário:
Usando um prompt de comando Administrativo, crie o SPN para a conta de serviço do SQL Server no Linux. Esta 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ório 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 tickets Kerberos, ao operar numa implementação de delegação restrita, configuramos a delegação utilizando a extensão da Microsoft para o padrão MIT Kerberos, conforme especificado no RFC 4120, e utilizamos o Service for User to 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
se autentica com a interface da Web do servidor PBIRS para exibir um relatório, o relatório é executado e precisa 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 para o servidor PBIRS. A extensão S4U2proxy fornece a transição de protocolo necessária para passar as credenciais necessárias sem ter que encaminhar o TGT (ticket de concessão de ticket) do usuário ou a chave de 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 Trusted To Authenticate for Delegation direito no domínio. Há várias maneiras de conceder esse direito (ou seja, ADSI Edit, Computer and Users UI, etc.). Usamos um comando PowerShell elevado neste exemplo:
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 permite não apenas a delegação Kerberos, mas também a delegação S4U2proxy (para transição de protocolo) na configuração da conta. Os dois cmdlets finais aplicam a autoridade de delegação a recursos específicos no domínio, os SPNs para o SQL Server e o 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)
O PBIRS deve ser instalado na configuração apenas no modo.
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 o processo de instalação, você precisa atualizar um dos arquivos de configuração do PBIRS antes de concluir o processo de configuração do PBIRS, seja na interface do usuário ou por meio da linha de comando. Se você usar uma instalação PBIRS existente, ainda precisará executar as edições e o serviço PBIRS deverá ser reiniciado para entrar em vigor. O arquivo de configuração é o rsreportserver.config
. Está no caminho onde o PBIRS foi 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
Este arquivo XML pode ser editado em qualquer editor de texto. Lembre-se de fazer uma cópia do arquivo antes de editar. 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>
Esta etapa é necessária, porque o SQL Server no Linux oferece suporte apenas à autenticação SQL e Kerberos.
Observação
Só precisamos incluir o atributo RSWindowsKerberos
, mas usar RSWindowsNegotiate
é útil se desejar padronizar 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 que o serviço PBIRS tiver sido reiniciado após a conclusão das edições do arquivo de configuração, você poderá continuar com as opções de configuração 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 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 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 são visíveis na página Mapeamento de Usuários.
Finalmente, podemos adicionar o reportuser
como um logon no SQL Server para fins de teste. Neste 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
.
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.