Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2019 (15.x) e versões posteriores no 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
| Máquina | 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, rodando SQL Server 2019 (15.x) com a última atualização cumulativa () |
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 |
Este cenário de exemplo usa servidores e contas separadas para garantir que a delegação do Kerberos funcione corretamente (ou seja, que ele lide com cenários de duplo salto).
Configuração do SQL Server em Linux
Antes de configurar (ou reconfigurar) o PBIRS para usar o SQL Server em Linux como backend para hospedar os bancos de dados do catálogo do Report Server, certifique-se de que a instância SQL Server em Linux esteja conectada ao domínio.
Para instalar, configurar adutil e unir o 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, confira Conectar sistemas RHEL diretamente ao AD usando o SSSD.
Nomes da entidade de serviços do SQL Server
Antes de instalar e configurar o PBIRS, configure os SPNs necessários no CORPNET domínio. Você 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 criar os SPNs, configure as contas para usar delegação restrita pelo Kerberos.
Esse cenário exige os seguintes SPNs mínimos:
A partir de um prompt de comando 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\linuxserviceOs 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 encaminhamento de tickets do Kerberos ao operar dentro de uma implementação de delegação restrita, você configura a delegação usando a extensão da Microsoft para o padrão Kerberos do MIT, conforme especificado no RFC 4120, e utiliza o Serviço para Usuário para Proxy (S4U2proxy). Esse 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 usuário.
Por exemplo, quando o reportuser relatório se autentica com a interface web do servidor PBIRS para visualizar um relatório, o relatório é executado e deve acessar dados de uma fonte de dados como uma tabela do SQL Server. O serviço SQL Server deve obter o reportuser ticket de serviço Kerberos, que foi concedido ao servidor PBIRS durante a autenticação. A extensão S4U2proxy fornece a transição necessária do protocolo para passar as credenciais necessárias sem encaminhar o TGT (ticket concedente de tickets) do usuário ou a chave de sessão do usuário.
Para alcançar esse resultado, conceda à conta de serviço PBIRS (pbirsserviceneste exemplo) e à conta de serviço do SQL Server (linuxserviceneste exemplo) o direito Confiável para Autenticação para Delegação no domínio. Você pode conceder esse direito de várias formas (por exemplo, ADSI Edit ou a interface de Computador e Usuários). Este exemplo usa um comando PowerShell elevado:
Obtenha a conta de serviço SQL Server e a configure para permitir delegação. Essa etapa habilita não apenas a delegação Kerberos, mas a delegação S4U2proxy (para transição de protocolo) na conta. Os dois últimos cmdlets 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. Essa etapa habilita não apenas a delegação Kerberos, mas a delegação S4U2proxy (para 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')}
Servidor de Relatórios do Power BI (PBIRS)
Instale o PBIRS apenas no modo de 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 a instalação, atualize um dos arquivos de configuração do PBIRS, seja na interface ou via linha de comando, antes de concluir a configuração do PBIRS. Se você usar uma instalação PBIRS existente, faça as edições e reinicie o serviço PBIRS para que as mudanças entrem em vigor. O arquivo de configuração é:rsreportserver.config. Fica no caminho onde o PBIRS é 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
Use qualquer editor de texto para editar este arquivo XML. Copie o arquivo antes de editá-lo. Depois de abrir o arquivo, procure a AuthenticationTypes tag dentro do documento XML e adicione os RSWindowsNegotiate atributos e RSWindowsKerberos antes do RSWindowsNTLM atributo. Por exemplo:
<Authentication>
<AuthenticationTypes>
<RSWindowsNegotiate/>
<RSWindowsKerberos/>
<RSWindowsNTLM/>
</AuthenticationTypes>
Você deve completar essa etapa porque o SQL Server em Linux suporta apenas autenticação SQL e Kerberos.
Note
Você só precisa incluir o RSWindowsKerberos atributo, mas RSWindowsNegotiate é útil se quiser padronizar arquivos de configuração PBIRS em uma frota de servidores que suportam uma mistura de instâncias SQL Server para 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, adicione o reportuser como login no SQL Server para fins de teste. Neste caso, você escolheu a abordagem simples e adicionou o usuário ao db_datareader papel fixo de banco de dados dentro de dois bancos de dados de usuário: AdventureWorks e AdventureWorksDW.
Depois que os relatórios tiverem sido implantados
Se você precisar configurar assinaturas de relatório depois que os relatórios forem implantados, é uma boa prática configurar credenciais inseridas 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.