Microsoft Azure + SQL 2016 CTP3 + Reporting Services ( SSRS )
Olá, pessoal!
Com o MS SQL Server Reporting Services podemos criar, gerenciar acesso e publicar relatórios que serão acessados pelos usuário via navegador ( IE, Chorme, Firefox, etc ) na rede interna da empresa e também externa via internet (web).
Para isso vamos ver “Como configurar o Reporting Services (SSRS) para ser acessado via web?” no Azure.
Cenário:
Tenho uma conta no Microsoft Azure, onde foi instalada uma VM com Windows Server 2012 R2 + SQL Server 2016 CTP3 e ativado o SQL Server Reporting Services ( SSRS ).
Usando todas configurações padrão.
Problema:
O SSRS só funciona dentro da VM.
Quando tento acessar via internet, ou seja, externamente com o navegador.
Não encontro o site ( servidor ) do Reporting Services.
Evidenciando que meu SSRS funciona no ambiente interno da minha rede, mas e se eu estou fora da empresa e não tenho acesso via TS, fica a pergunta:
“Como configurar o Reporting Services (SSRS) para ser acessado via web?” no Azure.
Antes de partimos para a resposta, precisamos saber:
1. O Microsoft SQL Server 2005 Reporting Services depende do IIS ( Internet Information Services ) para fazer o controle de acesso.
2. A partir do SQL Server 2008 o Reporting Services ou superior NÃO depende mais do IIS. Ele mesmo faz todo controle de acesso. Por isso, você deve criar uma URL de acesso externo usando o Reporting Services Configuration Manager.
3. O SQL Server usa diversas portas TCP e UDP para cada serviço. Mais informações em Portas usadas pelo SQL Server, as portas que desejamos são:
Porta TCP 80 | Usada para uma conexão HTTP por meio de uma URL |
Porta TCP 443 | Usada para uma conexão HTTPS por meio de uma URL. HTTPS é uma conexão HTTP que usa o protocolo SSL. |
4. O Microsoft Azure permite criar diversas VMs e até uma rede interna para comunicação entre elas. Porém, para acessar externamente essa “rede interna” do Azure ou algum serviço dela é obrigatório criar um EndPoint ( ponto de extremidade ).
Exemplo: Quando você criou a VM com o Windows Server o próprio Azure já criou automaticamente o EndPoint do Terminal Service ( TS ) para que você entre remotamente na VM.
Fazendo uma comparação: O EndPoint do Azure, faz o papel do Firewall do Roteador na sua rede. Você também precisa liberar a porta do TS no roteador e até redirecionar para um determinado IP de um computador da sua rede. Bom, é isso que o EndPoint faz com sua VM no Azure. Leia Business Intelligence do SQL Server em máquinas virtuais do Azure
Solução:
Bingo! Agora sabemos que falta um EndPoint para liberar o acesso externo ao SSRS.
Sigua os passos:
1. Entre via TS, na sua VM que está no Azure
Deve ser algo do tipo: NomeDaVM.cloudapp.net
2. Liberar o Firewall do Windows para acesso externo nas portas TCP 80 e 443.
Mais detalhes:
- Configurar o Firewall do Windows para permitir acesso ao SQL Server
- Configurar um firewall para acesso ao servidor de relatório
- Configurar um servidor de relatório para administração remota
3. Entrar no Reporting Services Configuration Manager
Em Web Service URL entre em Advanced e adicione a HTTP Identities, sendo a URL da sua VM NomeDaVM.cloudapp.net na porta 80.
Agora você tem duas URL
Acesso Rede Interna Azure http://meuservidor:80/MeusRelatorios Acesso Rede Externa Web http://NomeDaVM.cloudapp.net:80/MeusRelatorios Mais detalhes:
- Gerenciador de Configurações do Reporting Services (Modo Nativo)
- Configurar uma URL (Gerenciador de Configurações do SSRS)
Exemplo:
4. No navegador do seu computador, não na VM.
Entre na sua conta do Azure, selecione Máquina Virtual e clicar no NomeDaVM.
Entre em Pontos de Extremidade ( EndPoint ), clique adicionar e informe:
Nome SSRS É o nome do EndPoint Protocolo TCP É o protocolo de comunicação Porta pública 80 É a Porta Pública de Acesso Externo via Web Porta privada 80 É a Porta Privada de Acesso Externo via Web Mais detalhes Como configurar os pontos de extremidade para uma máquina virtual.
Exemplo 1: Visão antiga do painel de Gerenciamento do Azure
Exemplo 2: Visão nova do painel de Gerenciamento do Azure
5. Vamos testar em uma nova guia no navegador digite:
http://NomeDaVM.cloudapp.net:80/MeusRelatorios
Será solicitado o Usuário e Senha do Windows que está instalado na VM, ou seja, o mesmo que você usou para acessar o TS.
Pronto! SQL Server Reporting Services funcionando na rede interna e externa.
Atenção:
Lembro novamente que usei aqui todas configurações de porta e usuário padrão de instalação do Windows e do SQL.
É altamente recomendado que você crie portas e usuários
exclusivos para essas configurações.
Fonte:
Esse artigo foi baseado no post How to setup SSRS with an Azure SQL Server Database.
Consulte também:
-
Acesso à URL (SSRS)
-
Configurar os URLs do servidor de relatório (Gerenciador de configurações do SSRS)
-
Sintaxe de reserva de URL (Gerenciador de configurações do SSRS)
-
Configurar a Autenticação do Windows no servidor de relatório
-
Segurança e proteção (Reporting Services)
-
Concedendo permissões em um servidor de relatório no modo nativo
-
SQL Server Reporting Services General Best Practices