Hoje descobrimos que dois de nossos SQL Servers (ambos 2017 CU21) estão aceitando conexões de qualquer conta de domínio aleatório, mesmo aqueles que definitivamente não têm login direto ou acesso via associação ao grupo AD.
Em cada servidor há um banco de dados de usuários que permite que essas contas de domínio aleatórias se conectem.
Com base na configuração que vemos, esperamos que qualquer conta de domínio aleatório (ou seja, qualquer conta que não tenha um login na instância) tenha uma falha de login e, além disso, também seja bloqueada para se conectar ao banco de dados do usuário.
Para esses bancos de dados, a conta de convidado está desabilitada, mas para uma boa medida, executamos:
REVOKE CONNECT FROM guest
Isso não fez diferença.
Então duas perguntas:
- Como podemos desligar/impedir que essas conexões públicas sejam bem-sucedidas?
- Que instrução TSQL poderia nos mostrar a configuração problemática?
Coisas que vimos até agora:
- A função de servidor 'público' parece ter a configuração padrão, igual a todos os nossos outros servidores onde isso não é um problema
- O usuário convidado definitivamente aparece como desabilitado em todos os bancos de dados e servidores
- A função de banco de dados 'pública' tem apenas as permissões padrão que esperamos ver
- É apenas 1 banco de dados de usuário (mais master & msdb & tempdb) em cada servidor que é acessível a essas contas aleatórias -- todos os outros bancos de dados se comportam normalmente, ou seja, a conta não pode se conectar a eles.
- A configuração do tipo de contenção do banco de dados é 'Nenhum' para todos os casos.
- Não há login presente em nenhum dos servidores que abranja todos os usuários do domínio
Algum contexto: os dois servidores estão relacionados -- eles são os servidores DEV e PROD para o mesmo aplicativo. É muito provável que essa configuração tenha sido feita deliberadamente por algum motivo histórico - mas ninguém que trabalha aqui agora sabe o porquê, então gostaríamos de desabilitar esse acesso público.