Consegui (em 'eksperiments') remover meus usuários do Windows da minha instância do SQL Express. Agora estou logado como administrador do Windows e recriei o login SQL correspondente, mas não consigo atribuir direitos de administrador de sistema. Eu recebo o erro:
O usuário não tem permissão para realizar esta ação. (Microsoft SQL Server, Erro: 15247)
Se o administrador não puder fazer isso, devo começar a procurar um animal pequeno para sacrificar?
Responder1
É possível que sua conta de administrador do Windows não tenha direitos de administrador – depende do que você configurou. Você precisará fazer login com uma conta que tenha direitos ou fazer login como usuário sa.
Se você não tiver a autenticação SQL habilitada, poderá ativá-la com um ajuste no registro. Acho que esta é a chave certa:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<<instance name>>\MSSQLServer\Loginmode
Deve ser configurado para modo misto (2), mas é claro que você ainda precisa saber qual era a senha sa quando instalou a instância.
Responder2
Há um script no CodePlex que automatiza a recuperação da perda de direitos de administrador de sistema para sua instância local do SQL Server, desde que você tenha acesso a uma conta de administrador do Windows:
Responder3
Atualize as permissões de início do serviço da Instância do SQL Server para incluir '-m' ou -m"Microsoft SQL Server Management Studio - Query" se preferir usar SSMS em vez de sqlcmd/osql.
Em seguida, use este comando para conectar-se por meio de uma linha de comando:
sqlcmd -E -S HOSTNAME\INSTANCENAME
Ou conecte-se via SSMS com:
\\.\pipe\hostname\instancename\sql\query
E use isto para adicionar seu login e função:
CREATE LOGIN [domain\username] FROM WINDOWS;
GO
EXEC sp_addsrvrolemember 'domain\username', 'sysadmin';
GO
Depois você pode remover as opções '-m' do serviço e iniciá-lo normalmente.
Verhttp://msdn.microsoft.com/en-us/library/ms188236.aspxpara detalhes.