TL;DR
Eu gostaria de adicionar o SQL Server 2014 Analysis Services a uma instância específica do SQL Server e configurá-lo de tal forma que o Analysis Services (SSAS) e o futuro Reporting Services (SSRS) apenas peguem solicitações na instância específica IP, para permitir que o SQL Server Browser Service permaneça no estado parado .
Pré-requisitos
Tenho os seguintes pré-requisitos em relação a um único Windows Server executando várias instâncias do SQL Server 2014:
Informação básica
- 2 x placas de rede - 12 endereços IP - 10 x Instâncias de Serviço do SQL Server Server (em execução) - 10 x instâncias de serviço do SQL Server Agent Server (em execução) - 1 x SQL Server Browser Service (não está em execução)
Configuração da placa de rede
As NICs do Windows Server são configuradas da seguinte forma:
- 1 x NIC (Rede de Backup) - 10.2.0.1 - 1 x NIC (LAN) - 10.2.0.2 (Servidor Windows) - 10.2.1.1 (SQL Server "Instance01"/CNAME: servername-ins01) - 10.2.1.2 (SQL Server "Instance02"/CNAME: servername-ins02) - 10.2.1.3 (SQL Server "Instance03"/CNAME: servername-ins03) - 10.2.1.4 (SQL Server "Instance04"/CNAME: servername-ins04) - 10.2.1.5 (SQL Server "Instance05"/CNAME: servername-ins05) - 10.2.1.6 (SQL Server "Instance06"/CNAME: servername-ins06) - 10.2.1.7 (SQL Server "Instance07"/CNAME: servername-ins07) - 10.2.1.8 (SQL Server "Instance08"/CNAME: servername-ins08) - 10.2.1.9 (SQL Server "Instance09"/CNAME: servername-ins09) - 10.2.1.10 (SQL Server "Instance10"/CNAME: servername-ins10)
Gerenciador de configuração do SQL Server
O SQL Server Configuration Manager é configurado da seguinte forma para cada "Instance nm " do SQL Server:
- Protocolo para 'Instance01' - Memória Compartilhada: Ativada - Pipes nomeados: Desativado - TCP/IP: Ativado
Propriedades TCP/IP 'Instance01' - Guia Protocolo
- Protocolo - Ativado: Sim - Manter vivo: 30000 - Ouvir tudo: Não
Com as configurações acima, cada 'Instance nm ' terá que ser configurado individualmente para responder a chamadas específicas de IP na porta configurada. (Observação: como um benefício adicional, cada instância poderá escutar na porta padrão do SQL Server 1433, o que, por sua vez, simplificará bastante a configuração do firewall, pois você poderá usar a regra de porta sql-server
. Apenas dizendo .)
Propriedades TCP/IP 'Instance01' - Guia de Endereços IP
Para a entrada IP n que corresponde ao endereço IP da instância específica, as configurações são as seguintes:
- IPn - Ativo: Sim - Ativado: Sim - Endereço IP: 10.2.1.1 - Portas TCP Dinâmicas: - Porta TCP: 1433 - IPTodos - Portas TCP Dinâmicas: - Porta TCP:
Qualquer outra entrada IP n não relacionada ao endereço IP específico da instância será configurada da seguinte forma:
- IPn - Ativo: Sim - Ativado: Não - Endereço IP: 10.2.1.xx - Portas TCP Dinâmicas: - Porta TCP:
Resumo rápido
Com as configurações e configurações acima, cada instância do SQL Server será executada em/com um endereço IP dedicado na porta padrão do SQL Server 1433. Cada instância possui seu próprio CNAME, que permite que os usuários se conectem aos SQL Servers:
- servername-ins01
- servername-ins02
- servername-ins03
- servername-ins04
- servername-ins05
- servername-ins06
- ...
...sem precisar especificar a porta ou o nome da instância. Outra vantagem é que o SQL Server Browser Service não precisa estar em execução para distribuir chamadas para instâncias do SQL Server, porque cada chamada é roteada diretamente para o SQL Server (serviço) específico da instância.
Adicionar Analysis Services a uma instância
O fornecedor de software agora gostaria de aumentar a experiência do usuário e fornecer a capacidade de executar algumas consultas analíticas nos dados existentes. O fornecedor do software exige que instalemos o SQL Server Analysis Services. Este é um recurso específico da instância e, durante o processo de instalação, você deve selecionar a instância à qual adicionará o recurso.
Configuração do firewall
Para permitir conexões com o Analysis Services é necessário configurar a seguinte regra no firewall:
10.2.0.2:2382 (Browser Service)
Se eu tivesse usado a instância padrão (MSSQLSERVER), eu poderia ter configurado a seguinte regra no firewall:
10.2.1.1:2383 (Default Instance)
Isso está de acordo com a seguinte documentação:
SQL Server 2005 Analysis Services (SSAS) Server Properties (SQL Server 2005, mas aparentemente ainda válido para as versões atuais)
Conectando-se aos Serviços de Análise Específicos da Instância
Após a finalização da instalação, você se conecta ao Analysis Services específico da instância com a seguinte sintaxe:
servername\Instance01
Serviço de navegador do SQL Server
Depois de configurar o Analysis Service específico da instância do SQL Server, notei que o serviço SQL Server Browser agora estava no estado de execução .
Ops, isso significa que as solicitações para o Analysis Services estão sendo roteadas por meio do endereço IP do Windows Server (10.2.0.2) para a instância específica do SQL Server Analysis Service.
Se eu parar o serviço SQL Server Browser, não poderei mais me conectar ao SQL Server Analysis Services via servername\Instance01 .
Considerações de segurança
De acordo com a documentação acima mencionada:
O serviço SQL Server Browser é compartilhado entre o mecanismo de banco de dados do SQL Server 2005 e o mecanismo do Analysis Services. Para o mecanismo de banco de dados, por motivos de segurança, é recomendável desativar o serviço SQL Server Browser . Isso pode criar um dilema porque você pode precisar dele para o mecanismo do Analysis Services . É uma prática recomendada ativar o serviço se você precisar dele, mas, caso contrário, deixe-o desativado.
Uau.
Descobertas
A instalação do SQL Server Analysis Services iniciou o serviço SQL Server Browser, criando uma consideração de segurança .
Perguntas
Posso configurar o SQL Server Analysis Services
Instance01
com o CNAMEservername-ins01
, para ser vinculado ao endereço IP10.2.1.1
?Posso configurar o SQL Server Analysis Services da minha instância nomeada de forma que eu possa parar o serviço SQL Server Browser novamente?
O Analysis Services sempre escuta em todos os IPs, a menos que seja uma instância clusterizada ou em execução em uma VM. Portanto, você não pode desabilitar o serviço do navegador nesta configuração.
Se você puder viver com acesso IIS e HTTP, poderá configurar vários sites IIS executando instâncias do Analysis Services Data Pump.
Introdução
Depois de ler vários artigos online e configurar vários Analysis Services em um SQL Server de várias instâncias, posso fornecer as seguintes soluções possíveis para pessoas na mesma situação. Todos eles envolvem mais ou menos configurações e/ou configurações de firewall. Eles estão o mais próximo possível de uma configuração IP : PORT e/ou CNAME : PORT específica da instância.
Material de referência
Seguindo uma lista de artigos que analisei ao tentar configurar o Analysis Services para ser executado em um IP específico : configuração de porta :
Conectar-se de aplicativos cliente (Analysis Services) (Microsoft | Docs | SQL Server 2014)
Como determinar e alterar a porta de uma instância SSAS (Suporte da Microsoft)
Configurar o Firewall do Windows para permitir o acesso ao Analysis Services (Microsoft | Docs | SQL Server 2014)
SQL Server Browser Service (Database Engine e SSAS) (Microsoft | Docs | SQL Server 2014)
Propriedades do servidor SQL Server 2005 Analysis Services (SSAS) (Microsoft Technet)
Lista de números de porta TCP e UDP (Wikipedia)
ainda válido para SQL Server AS 2005 a 2017
Solução sem execução do navegador SQL Server
Se você realmente está preocupado com a segurança e não quer que as pessoas "naveguem" em seu SQL Server para instâncias disponíveis, então você não quer o serviço SQL Server Browser em estado de execução . O ponto de partida para esta configuração é a seguinte instrução do SQL Server Browser Service (Database Engine e SSAS) :
Mas você perde as seguintes habilidades:
( grifo meu; só quero eu queria)
Depois de instalar o SQL Server Analysis Service, você terá que fazer as seguintes alterações nas configurações/configurações do SSAS.
Configurar a instância SSAS para escutar em uma porta específica
Modifique a configuração SSAS da instância específica (por exemplo,
Instance01
) para escutar em uma porta específica. Cada instância (por exemploInstance01
, ,Instance02
, ...) requer sua própria porta dedicada. Você não pode configurar todas as instâncias para usar a mesma porta (por exemplo2383
)... Com SSMS
servername\instance01
)2383
para a instância padrão (MSSQLSERVER) e0
para uma instância nomeada, o que significa que a porta é definida dinamicamente.2382
, pois isso pode atrapalhar o serviço SQL Server Browser que ainda está escutando na porta2382
qualquer conexão de entrada para as outras nove instâncias do SSAS atualmente em execução. Você pode querer considerar o uso de um número de porta na região de 49152–65535, que está disponível para uso privado (Lista de números de porta TCP e UDP / wikipedia).... Com bloco de notas
msmdsrv.ini
arquivo que normalmente se encontra no diretório doC:\Program Files\Microsoft SQL Server\MSAS12.INSTANCE01\OLAP\Config
diretório.<Port>0</Port>
configuração.2382
, pois isso pode atrapalhar o serviço SQL Server Browser que ainda está escutando na porta2382
qualquer conexão de entrada para as outras nove instâncias do SSAS atualmente em execução. Você pode querer considerar o uso de um número de porta na região de 49152–65535, que está disponível para uso privado (Lista de números de porta TCP e UDP / wikipedia).Configurar clientes para se conectar a uma instância específica
Para que os clientes possam se conectar ao Analysis Service, você terá que fornecer o Fully Qualified SQL Server Analysis Server Name (FQSSASN) com uma porta como esta:
Este é o CNAME do
servername\instance01
SQL Server, mas como o serviço SQL Server Browser será desativado no final, você não poderá usarservername\instance01:52383
para se conectar ao servidor. Na verdade, isso não importa, porque a instância do SSAS pegará qualquer IP.Configurações de firewall
Como a instância do SSAS está sendo executada em uma porta dedicada, você pode configurar o firewall para permitir conexões através do IP:porta da instância nomeada (por exemplo
10.2.1.1:52383
, conforme a pergunta).Important The above procedure has to be repeated for each SSAS instance running on the dedicated server, incrementing the port number along the way. After all Analysis Services instances have been reconfigured to listen on a dedicated port, the SQL Server Browser service can then be turned off.
Verifying Analysis Services Ports
This can be verified by running
netstat -abno
and looking for the individual[msmdsrv.exe]
entries:The number at the end of the line is the process number of the service. You can look this up in the Windows Task Manager (PID) to verify that the Analysis Service for the specific instance is running on the specified port.
SQL Server Browser Service
Once you have configured all your SSAS instances to listen on individual ports and your existing SQL Servers are all running on dedicated IPs and ports (as in the question) , you can then stop the SQL Server Browser service.
Each individual Analysis Service will be reachable via the
CNAME:PORT
syntax: