Este tópico descreve como obter o endereço IP público de origem de um servidor externo ou cliente conectado a uma instância do ApsaraDB RDS for SQL Server quando esse endereço muda dinamicamente. O banco de dados registra o IP público de saída, e não o IP exibido por ferramentas de consulta local. Por isso, adicionar o IP consultado localmente à lista de permissões ainda resulta em falhas de conexão.
Este tópico aborda dois cenários:
Identificar o IP de saída do cliente e adicioná-lo à lista de permissões
Listar todos os endereços IP conectados atualmente à instância
Observações de uso
Se o cliente ou servidor externo tiver um endereço IP público dinâmico em produção, conecte-se pela rede interna ou adicione um bloco CIDR apropriado à lista de permissões de endereços IP. Essa medida evita desconexões causadas por alterações no endereço IP.
Cenário 1: Identificar o IP de saída do cliente
Adote esta abordagem quando não for possível conectar-se à instância RDS porque o endereço IP adicionado à lista de permissões não corresponde ao IP de saída real identificado pela instância.
Procedimento
-
Adicione o bloco CIDR
0.0.0.0/0à lista de permissões de endereços IP da instância RDS. Para mais informações, consulte Configure an IP address whitelist.ImportanteO bloco
0.0.0.0/0permite que todos os endereços IP acessem a instância. Remova essa entrada assim que concluir o teste. Conecte-se à instância RDS com um cliente. Para mais informações, consulte Connect to an ApsaraDB RDS for SQL Server instance.
-
Execute a consulta a seguir para recuperar o tipo de protocolo (
PROTOCOL_TYPE) e o endereço IP público do cliente conforme identificado pela instância (CLIENT_NET_ADDRESS):SELECT CONNECTIONPROPERTY('PROTOCOL_TYPE') AS PROTOCOL_TYPE, CONNECTIONPROPERTY('CLIENT_NET_ADDRESS') AS CLIENT_NET_ADDRESSNo resultado da consulta, a coluna
CLIENT_NET_ADDRESScontém o endereço IP de saída real do cliente a ser adicionado à lista de permissões. Remova o bloco CIDR
0.0.0.0/0adicionado na etapa 1 e adicione o endereço IP retornado porCLIENT_NET_ADDRESSà lista de permissões.
Cenário 2: Listar todos os endereços IP conectados
Utilize este método para auditar todas as conexões ativas com a instância RDS ou investigar vazamentos de conexão.
Procedimento
-
Adicione o bloco CIDR
0.0.0.0/0à lista de permissões de endereços IP da instância RDS. Para mais informações, consulte Configure an IP address whitelist.ImportanteO bloco
0.0.0.0/0permite que todos os endereços IP acessem a instância. Remova essa entrada assim que concluir o teste. Conecte-se à instância RDS com um cliente. Para mais informações, consulte Connect to an ApsaraDB RDS for SQL Server instance.
-
Execute a consulta abaixo para listar todas as conexões ativas autenticadas via SQL. A consulta retorna o ID da sessão (
SPID), nome de login, hora do login, nome do host, nome do aplicativo cliente, porta TCP e endereço IP do cliente:SELECT SP.SPID, SP.LOGINAME, SP.LOGIN_TIME, SP.HOSTNAME, SP.PROGRAM_NAME, DC.CLIENT_TCP_PORT, DC.CLIENT_NET_ADDRESS FROM SYS.SYSPROCESSES AS SP INNER JOIN SYS.DM_EXEC_CONNECTIONS AS DC ON SP.SPID = DC.SESSION_ID WHERE SP.SPID > 50 AND DC.AUTH_SCHEME='SQL'O filtro
SP.SPID > 50exclui processos do sistema. JáDC.AUTH_SCHEME='SQL'restringe os resultados às conexões autenticadas via SQL. Remova o bloco CIDR
0.0.0.0/0(ou o bloco CIDR da sua empresa) da lista de permissões de endereços IP.
Visualize configurações de parâmetros de conexão
Após executar a consulta do cenário 2, use o valor de SPID para inspecionar todas as configurações de parâmetros de uma conexão específica:
SELECT * FROM SYS.DM_EXEC_SESSIONS WHERE SESSION_ID=<The obtained SPID>
Substitua <The obtained SPID> pelo valor de SPID obtido nos resultados da consulta do cenário 2.
A consulta retorna um conjunto de resultados com as configurações detalhadas dos parâmetros da sessão.