Durante o teste, desmarquei os direitos de administrador de sistema para o meu login e agora não posso adicioná-lo novamente (porque não tenho direitos de administrador de sistema).
Não há outras contas sysadmin para a instância, exceto a [sa]
conta.
Eu estava configurado apenas para autenticação do Windows, então invadi LoginMode
o registro para 2
poder fazer login sa
usando a autenticação SQL. Isso realmente define o modo de login como Mixed
, no entanto, o sa
usuário está desabilitado por padrão e não posso reativá-lo porque não tenho direitos de administrador do sistema.
Como habilito o sa
login para que eu possa entrar e reatribuir o administrador do sistema à minha conta normal? Existe uma configuração de registro para isso também ou ela está armazenada no banco de dados mestre?
Existe um backdoor real no SQL Server que não requer reinicialização e/ou reinicialização de nada no modo de usuário único. Eu fiz isso em sistemas onde eu não tinha acesso, mas precisava verificar as coisas.
Baixe as ferramentas PSexec aqui . Coloque isso no servidor e, em um prompt de comando, execute este comando:
psexec -i -s SSMS.exe
, ou sqlwb.exeIsso abrirá o SSMS como a conta do sistema que tem acesso sysadmin à instância do SQL Server. Isso é feito durante a instalação do SQL Server, porém ouvi dizer que não será assim com o SQL 2012.
O SQL Server 2008 e mais recente não adicionam automaticamente o Grupo do Windows de administradores locais à função de servidor fixa sysadmin.
Quando o SQL Server 2008 é instalado, ele solicita que você designe uma conta a ser adicionada à função sysadmin. No entanto, se você receber a caixa após a instalação do software, isso não ajudará muito.
Felizmente, a Microsoft preservou a funcionalidade de 2005 quando o SQL Server está sendo executado no modo de usuário único. Aqui está o que você faz:
Os detalhes apresentados nesta resposta estão corretos - no entanto, outras respostas fornecem soluções alternativas que existem para permitir que o SQL Server seja iniciado em um modo especial que permite que o administrador do servidor acesse o SQL Server como membro da função sysadmin.
Mesmo o tipo mais uber-admin de opção de conexão Dedicated Administrator Connection ( DAC ), que só pode ser usado como uma conexão local, e permite desfazer todo tipo de mal, ainda requer credenciais de login. Então eu não acho que há uma maneira oficial de fazer isso.
A maneira mais rápida de ressuscitar este sistema pode ser desligar o SQL Server, copiar os arquivos do banco de dados do usuário em algum lugar seguro, desinstalar, reinstalar (certificando-se de que o service pack esteja pelo menos no nível em que você estava anteriormente), copiar os arquivos de volta e anexar os bancos de dados. (Não tenho certeza se a cópia de saída/volta é necessária, mas apenas por segurança...).
Você ainda precisará recuperar manualmente os objetos no nível do servidor (por exemplo, logins)
Esta é uma ótima pergunta e alguém estará nessa situação e precisa de um resgate dela.
Todo o crédito vai para codykonior
O script abaixo irá iterar os serviços do SQL Server e adicionará você à função sysadmin onde quer que esteja faltando:
Você ainda pode criar um login com acesso 'sysadmin'. Graças ao Engenheiro de Dados Principal da Microsoft (Saleem Hakani) foi o autor das dicas e truques do SQL Server abaixo.
Encontrei isso enquanto estava preso em um estado semelhante quando esqueci a senha sa para minha máquina de teste.
Link: https://blogs.technet.microsoft.com/sqlman/2011/06/14/tips-tricks-you-have-lost-access-to-sql-server-now-what/
Aqui estão as etapas que você precisará executar:
No prompt de comando, digite: SQLServr.Exe –m (ou SQLServr.exe –f)
Observação: se a pasta Binn não estiver no caminho do ambiente, você precisará navegar até a pasta Binn.
(Geralmente a pasta Binn está localizada em: C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Binn)
SQLCMD-S
Agora você estará conectado ao SQL Server como administrador.
Para criar um novo logon e adicionar esse logon à função de servidor SYSADMIN:
1> CRIAR LOGIN '' com SENHA=''
2> vá
1> SP_ADDSRVROLEMEMBER '','SYSADMIN'
2>vai
Para adicionar um logon existente à função de servidor SYSADMIN, execute o seguinte:
1> SP_ADDSRVROLEMEMBER '','SYSADMIN'
A operação acima cuidará de conceder privilégios SYSADMIN a um login existente ou a um novo login.
Você pode fazer o seguinte:
1) Crie uma conta de usuário do Windows com privilégios administrativos
2) Faça login no Windows com a nova conta administrativa
3) Abra o Sql Server Mangement Studio usando a Autenticação do Windows
4) Agora você está logado no SQL Server como sysadmin, então você pode criar novas contas ou atualizar o usuário sa