Senha perdida do SQL Server - sem autenticação do Windows - novas funções criadas na linha de comando NÃO aparecem

1

Nosso pessoal de suporte alterou a senha 'sa' do nosso banco de dados do SQL Server. Eles desligaram a autenticação do Windows. Então o cara que fez o trabalho foi embora.

Portanto, temos um banco de dados de produção que não está sendo armazenado em backup e que estamos bloqueados. E mais de 10 anos de dados de produção.

Eu tentei o truque usual de adicionar novas funções da linha de comando SQLCmd.

  1. Retorna o MSSQLSERVER no modo de usuário único

  2. da linha de comando do MS-DOS, emita "MSSql -S 127.0.0.1 \ MSSQLSERVER" e, em seguida, na linha de comando:

    USE [master]
    GO
    
    CREATE LOGIN [BUILTIN\Administrators] FROM WINDOWS WITH DEFAULT_DATABASE=[master]
    GO
    
    EXEC master..sp_addsrvrolemember @loginame = 'BUILTIN\Administrators', @rolename = 'sysadmin'
    GO 
    
  3. Reinicie o MSSQLSERVER como normal

Mas no SQL Management Studio, os novos usuários e as novas atribuições de funções não são vistos em lugar algum. Usuários

Se eu for para master.sys.server_principals, não vejo os novos logins. tabela server_principals

Se eu tentar adicionar a função a um usuário existente no Management Studio, isso indica que não tenho permissões. Estou logado como administrador do Windows, mas não sou (porque essa é a senha que estou tentando recuperar ou redefinir): Sem permissão

Eu volto para a linha de comando do MSSql e reemito os comandos acima e ele diz que o principal já existe. o principal existe

Não há outra instância do SQL na máquina. Não há outro servidor na nossa rede. Não há mensagens de erro que eu possa ver em qualquer lugar. Eu estou fazendo o acima com direitos totais de administrador no Windows Server 2012 R2.

Como é que a linha de comandos MSSql cria os logins & atribui funções, informando que está tudo bem, mas não há mensagens de erro e nada visível no SQL Server Management Studio. Eu reiniciei o MSSQLSERVER. Eu reiniciei o Management Studio.

Acho que estou ficando louco. Alguém tem alguma idéia do que fazer ???

    
por Murky Sneaker 23.12.2017 / 14:39

2 respostas

3

Eu recomendaria seguir as etapas que anotei abaixo para recuperar o acesso aos seus dados.

  1. Defina a instância do SQL Server de volta para a autenticação do modo Mix.

Você pode fazer isso interrompendo a instância do SQL Server e ajustando a chave do Registro. Alterar esse registro é tudo que o SSMS fez quando o DBA do formulário o alterou. Não há problema em alterar essa chave do Registro para defini-la de volta, apenas garante que a instância não esteja em execução.

O caminho da chave de registro deve ser algo assim: HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\MSSQLSERVER\MSSQLServer\LoginMode . Você deve encontrar este conjunto para 1 agora para autenticação do Windows. Altere este valor para 2 para o modo misto.

  1. Instale o módulo do PowerShell no servidor ou na máquina cliente na galeria do PowerShell chamada dbatools .

Uma vez que você tenha o módulo instalado, você pode utilizar o comando: Reset-DbaAdmin . Isso solicitará que você redefina a conta "sa" e permita que você recupere o acesso à instância novamente.

#Install from the gallery
Install-Module dbatools

# Import module and run command
Import-Module dbatools
Reset-DbaAdmin -SqlInstance YourServerName
    
por 24.12.2017 / 02:57
0

Isso funcionou para mim o par de vezes que fiz isso. Você tentou redefinir a senha sa enquanto o servidor está no modo de uso único?

    
por 23.12.2017 / 18:57