Uma das ferramentas de visualização de dados mais populares entre os clientes é o Power BI. Como é recente e a Microsoft melhora as funcionalidades dia após dia, surgem problemas que um programador pode nunca ter encontrado antes.
Enquanto programador, tive a oportunidade de trabalhar de forma dedicada desde a instalação do report server, configurando-o, aplicando o brand package e gerindo a segurança dos relatórios.
Este documento descreve os passos de configuração e de implementação de segurança do Power BI Report Server, na esperança de ajudar quem faça uma implementação semelhante.
O que é o Power BI Report Server?
O Power BI Report Server é um servidor de relatórios on-premises com um portal web onde se visualizam e gerem relatórios e KPIs. Acompanham-no as ferramentas para criar relatórios Power BI, relatórios paginados, relatórios móveis e KPIs. É uma extensão do SSRS, com aspeto semelhante, mas com funcionalidade adicional para alojar relatórios PBIX.
Crie, publique e faça a gestão de relatórios Power BI, móveis e paginados on-premises, com o conjunto de ferramentas e serviços prontos a usar que o Power BI Report Server disponibiliza.
Componentes e requisitos
Power BI Report Server
A instalação é simples e a documentação da Microsoft é suficientemente clara para a concluir com sucesso. Pode seguir o link abaixo:
docs.microsoft.com/power-bi/report-server/install-report-server
Usámos a seguinte configuração de sistema:
RAM: 32 GB
Windows Server: 2016 Datacenter
Tipo de sistema: Sistema operativo de 64 bits, processador x64
Base de dados: SQL Server 2016 SP2 Enterprise Edition
Cliente ORACLE
Os relatórios em que trabalhámos baseiam-se em ORACLE. Depois de publicados no report server, usam as definições da máquina do servidor para correr. Por isso, é necessário instalar o cliente ORACLE no próprio servidor.
Base de dados SQL Server
Tal como o SSRS, o Power BI Report Server também usa duas bases de dados SQL Server para guardar os metadados dos objetos do report server. Por isso, é preciso ter uma instância SQL Server Enterprise instalada localmente ou remotamente.
Desafios e mitigações
- O utilizador tem de pertencer ao grupo de administradores locais.
- O ficheiro TNSNAMES.ORA deve estar bem configurado, com o alias TNS para a ligação à base de dados.
- O caminho do ficheiro TNSNAMES.ORA deve ser definido na variável de ambiente TNS_ADMIN. Consulte a pasta bin do Oracle (ficheiro ORACLE.KEY) para saber onde adicionar a variável.
- O caminho do bin do Oracle deve ser definido com privilégios de administrador.
- Tem de ser a Enterprise Edition do SQL Server. A Developer Edition ou RDS não servem.
- Usámos o SQL Server 2016 SP2 Enterprise Edition.
Configurar o Report Server
Após instalar o Power BI Report Server, é preciso configurar o serviço a partir do Report Server Configuration Manager. Os passos são simples e estão na documentação da Microsoft:
docs.microsoft.com/power-bi/report-server/install-report-server
Usámos os detalhes abaixo, que funcionaram com sucesso.
- Service Account: as credenciais da minha conta de domínio.
Web Service URL
- Virtual Directory: <um nome que descreva o propósito>
- IP Address: All Assigned
- TCP Port: 80
- O URL é gerado automaticamente.
Base de dados
Em Change Database, aponte o report server para a instância SQL Server Enterprise Edition. Veja o link:
Criar a base de dados do report server (docs Microsoft)
Web Portal URL
- Virtual Directory: <um nome a usar no URL>
- O URL é gerado automaticamente.
Nota: o resto não é necessário para a configuração básica.
Desafios e mitigações
- Problemas de rede:
Se obtiver um erro relacionado com a rede:
- Verifique se as propriedades da ligação têm "Obter endereço do servidor DNS automaticamente" ativado (Painel de Controlo >> Rede e Internet >> Ligações de Rede >> clique direito na ligação >> Propriedades >> TCP IPv4 >> Propriedades).
- Verifique se o TCP/IP está ativado na máquina.
- Verifique se a porta TCP está aberta.
- Verifique se a base de dados de metadados do SQL Server está no mesmo domínio e se a firewall não está a bloquear nada.
- Problemas de permissões da base de dados:
Se obtiver um erro relacionado com a base de dados:
- O SQL Server deve ser a Enterprise Edition. Instância RDS ou Developer Edition não funcionam.
- As credenciais usadas para configurar a base de dados devem ter os papéis SYSADMIN e Public no SQL Server.
- Tanto a instalação local como a instância remota funcionam.
Ligar à base de dados do Report Server
Pode ligar-se à instância da base de dados do report server a partir do SQL Server Management Studio para verificar se o utilizador tem os papéis necessários ou se as bases de dados foram criadas.
Desafios e mitigações
- Se tiver problemas a iniciar sessão, confirme primeiro com o administrador se tem as credenciais corretas.
- O nome do servidor será <hostname>,<porta>.
Ex.: 150.9.8.15, 1166 - Se houver problemas a iniciar sessão a partir da máquina do servidor, tente a partir de outra máquina no mesmo domínio.
Ligar ao Reporting Service
Depois de configurar o report server com sucesso, deve conseguir iniciar sessão no reporting service a partir do SQL Server Management Studio. Serve para verificar os papéis por omissão, criar/editar papéis e gerir o agendamento.
Se o servidor estiver bem configurado, verá o serviço "PowerBIReportServer" a correr na máquina onde está instalado.
No SQL Server Management Studio, vá ao object explorer e selecione "Reporting Services". Deve ver a instância na lista. Introduza as credenciais e inicie sessão.
Desafios e mitigações
- Se não houver instância na lista, registe o serviço no SSMS: View >> Registered Servers >> Reporting Services >> Local Server Groups >> clique direito >> New Server Registration, coloque o "Web Service URL" e teste.
Iniciar o portal web
- Abra o navegador. Consulte os navegadores e versões suportados.
- Na barra de endereço, escreva o URL do portal web.
- Por omissão, o URL é
https://[NomeDoServidor]/reports. - O report server pode estar configurado numa porta específica, por exemplo
https://[NomeDoServidor]:80/reportsouhttps://[NomeDoServidor]:8080/reports.
No portal web pode realizar as seguintes tarefas:
- Ver, pesquisar, imprimir e subscrever relatórios.
- Criar e manter a hierarquia de pastas para organizar os itens no servidor.
- Configurar segurança baseada em papéis (acesso a itens e operações).
- Configurar propriedades de execução, histórico e parâmetros dos relatórios.
- Criar agendamentos e fontes de dados partilhados.
- Criar subscrições orientadas por dados para distribuir relatórios a muitos destinatários.
- Criar relatórios ligados (linked reports) para reutilizar um relatório existente.
- Descarregar ferramentas como o Report Builder e o Mobile Report Publisher.
- Criar KPIs.
- Enviar feedback ou pedidos de funcionalidades.
Publicar um relatório no Report Server
Depois de configurar o report server com sucesso, deve conseguir aceder-lhe pelo URL do portal web. Pode usar o mesmo URL para guardar os relatórios no report server.
Desafios e mitigações
- Confirme se o URL está correto.
- Confirme se iniciou sessão no servidor com as mesmas credenciais.
- Pode surgir um "Unexpected Error Encountered" ao guardar os relatórios. Use a funcionalidade de Upload do próprio portal web.
Gerir a segurança no servidor
Há casos em que terá de definir segurança nas pastas, objetos e relatórios do servidor, com base nos utilizadores ou grupos do domínio. Use a funcionalidade Manage do portal web para atribuir papéis aos utilizadores.
Existem essencialmente três camadas de segurança no Power BI Report Server:
- O próprio portal pode ser protegido. Deve limitar o acesso aos relatórios apenas a utilizadores ou grupos específicos.
- As pastas dão segurança mais granular sobre um conjunto de ativos. Na imagem acima criei uma pasta "PBI Secure Reports", à qual um grupo AD específico tem acesso. Se o utilizador não tiver permissões, a pasta não aparece no portal e não acede ao seu conteúdo.
- Os relatórios individuais também podem ser protegidos. Não recomendo esta opção, por ser difícil de gerir, mas a capacidade existe se for mesmo necessário proteger um único ativo.
Mapear papéis SSRS para funções Power BI
O portal, as pastas e os ficheiros são protegidos com papéis SSRS. Resumo de alto nível dos papéis e do efeito nos relatórios Power BI:

- Browser – função de leitura (semelhante a entregar o relatório como Power BI App no serviço). Para quem precisa de aceder ao relatório, mas não cria conteúdo.
- Content Manager – para um criador de conteúdo com privilégios de administração; gere conteúdo e acessos.
- Publisher – para criadores que não precisam de gerir utilizadores. A maioria enquadra-se aqui.
- Report Builder – não se aplica a relatórios Power BI (desenvolvidos no Power BI Desktop).
Desafios e mitigações
- O utilizador tem de ter acesso ao report server.
- Para gerir a segurança no portal web, o utilizador tem de pertencer ao grupo de administradores locais.
- O utilizador a quem se aplica a segurança não pode pertencer ao grupo de administradores locais — esses têm, por omissão, acesso a todas as pastas/objetos independentemente da segurança.
Evite publicar na página inicial do portal
Recomendo não publicar relatórios diretamente no portal principal; crie antes pastas por departamento ou grupo. Os relatórios publicados na página inicial devem ser geridos como ativos empresariais, controlando com pastas e grupos de segurança quem pode publicar a esse nível.
Branding do portal web
Pode alterar a aparência do portal web aplicando o branding da sua empresa, através de um brand package. Está desenhado para não exigir conhecimento profundo de CSS.
Criar o brand package
Um brand package para o Reporting Services tem três itens, empacotados num ficheiro zip:
- color.json
- metadata.xml
- logo.png (opcional)
Aplicar o brand package ao portal web
Para adicionar, descarregar ou remover um brand package:
- Selecione o ícone de engrenagem no canto superior direito.
- Selecione Site Settings.

- Selecione Branding.

Currently installed brand package mostra o nome do pacote carregado, ou "none".
Upload brand package aplica o pacote ao portal web, com efeito imediato. Também pode Download ou Remove; remover repõe o portal no branding por omissão.
Veja o link da documentação Microsoft:
Branding the web portal (docs Microsoft)
Por exemplo:
Antes de aplicar o brand package — pacote por omissão do Power BI Report Server:
Depois de aplicar o brand package — pacote de marca XBOX:


Conclusão
Um agradecimento especial ao Nityanand e ao Rudra pela orientação e apoio na implementação do Power BI Report Server, e ao Nitin pela ajuda neste tema.