Tanto no meu servidor (que hospeda o servidor SQLS) quanto no meu PC, tenho esta entrada no arquivo hosts:
Estou usando a autenticação do Windows para fazer login no SSMS.
Usando servername MYSQLSERVER
no SSMS no meu PC, não tenho problemas para fazer login, mas se eu tentar o mesmo no SSMS (no servidor), recebo este erro:
TITLE: Connect to Server
------------------------------
Cannot connect to MYSQLSERVER.
------------------------------
ADDITIONAL INFORMATION:
Login failed. The login is from an untrusted domain and cannot be used with Integrated authentication. (Microsoft SQL Server, Error: 18452)
For help, click: https://docs.microsoft.com/sql/relational-databases/errors-events/mssqlserver-18452-database-engine-error
------------------------------
BUTTONS:
OK
------------------------------
Tentei substituir o ip no arquivo hosts por 127.0.0.1 MYSQLSERVER
e com, ::1 MYSQLSERVER
mas é o mesmo problema.
Preciso conseguir fazer login no SSMS no servidor usando um nome de host do arquivo hosts - e não usando localhost ou o nome real do servidor.
Alguma ideia do que estou fazendo de errado?
A Autenticação do Windows (Kerberos) sempre exige que o nome do servidor especificado pelo cliente corresponda a um principal presente no KDC. Embora funcione de maneira diferente do TLS, pode ser comparado a como o TLS exigiria que o nome correspondesse ao certificado (exceto que não há opção de ignorar, pois o Kerberos usa o nome do servidor para recuperar a chave correta).
Por exemplo, no seu caso o cliente tenta conseguir um ticket para . Se o KDC não puder associar isso a uma chave de serviço conhecida, não será capaz de emitir um tíquete de autenticação que o serviço consideraria aceitável.
MSSQLSvc/[email protected]
Com o Active Directory como KDC, se você quiser usar um nome personalizado, precisará registrá-lo como SPN (nome principal do serviço) na conta do serviço, por exemplo, usando
setspn
. Acontece que a Microsoft possui documentação específica sobre o SQL Server neste tópico, embora seja basicamente a mesma para qualquer serviço baseado em Kerberos.Se o seu PC não for membro do domínio (e também não tiver sido especificamente instruído a usar o Kerberos), ele usará o NTLM menos seguro, que não é afetado pelo requisito de SPN.
Sugestões:
Os documentos de conexão do cliente SQL Server da Microsoft sugerem que deve ser possível definir um SPN personalizado como parte de sua cadeia de conexão. Ou seja, se o servidor for realmente chamado
TESTSERV
, você poderá usarServerSPN=MSSQLSvc/TESTSERV
.Use diferentes meios de bloquear o acesso ao servidor de teste, como regras de firewall, ou limite quais contas do SQL Server têm permissão para efetuar login (para que sua conta de teste possa, mas usuários reais não).