Determinar se a autenticação de modo misto está ativada sem efetuar login?

Respostas:

15

Outra abordagem é tentar fazer login, usando autenticação SQL, com uma conta obviamente falsa que não terá êxito. Você pode usar o bloco de notas para abrir o ERRORLOGarquivo C:\Program Files\Microsoft SQL Server\$instance folder$\MSSQL\Log\e ver este erro ...

Erro: 18456, Gravidade: 14, Estado: 58 .
Falha no login do usuário 'polly_wants_a_cracker'. Motivo: uma tentativa de efetuar login usando autenticação SQL falhou. O servidor está configurado apenas para autenticação do Windows.

Isso significa que a autenticação em modo misto não está ativada .

... ou este ...

Erro: 18456, Gravidade: 14, Estado: 5 .
Falha no login do usuário 'polly_wants_a_cracker'. Motivo: não foi possível encontrar um login correspondente ao nome fornecido.

Isso significa que a autenticação em modo misto está ativada .

Não sei se existe uma maneira de saber sem:

  • efetuando login com sucesso
  • ter acesso físico à caixa (ou registro remoto) para verificar a configuração do registro (como Julien descreve ) ou o log de erros do estado / mensagem ao efetuar o login sem êxito
Aaron Bertrand
fonte
18

Você pode verificá-lo no registro:

HKLM\Software\Microsoft\Microsoft SQL Server\ [instancename] \MSSqlServer

O modo atual é gravado na LoginModetecla.

Os valores (DWORD) podem ser:

  • 1 = modo de autenticação do Windows
  • 2 = modo de autenticação do SQL Server e do Windows

Nota:

  • 0 é equivalente a 2
  • Você ainda precisa acessar o Registro (e o servidor)
Julien Vavasseur
fonte
2

Você também pode fazer isso via PowerShell:

import-module sqlserver
$sqlserver = "ServerName"
$srv = Get-SqlServer -sqlserver $sqlserver
$srv.LoginMode

Isso retornará uma saída como esta:

insira a descrição da imagem aqui

RonDBA
fonte