Não é possível adicionar um usuário à função sysadmin no SQL Server

9

Estou usando o SQL Server 2008 Management Studio. A conta de logon atual pertence ao grupo de administradores locais da máquina. Estou usando o modo Segurança Integrada do Windows no SQL Server 2008.

Meu problema é que, depois de efetuar o login no SQL Server Management Studio, seleciono meu nome de login em Segurança / Logins, em seguida, selecione a guia Funções do servidor e o último item - sysadmin para me pertencer a esse grupo / função, mas diz: não tem permissão suficiente. Alguma ideia do que está errado? Eu acho que o administrador local deve ser capaz de fazer qualquer coisa. :-)

George2
fonte
isto é o que a microsoft fornece sobre esse problema: msdn.microsoft.com/en-us/library/dd207004.aspx eu posso recomendar este script: archive.msdn.microsoft.com/addselftosqlsysadmin/Release/…

Respostas:

6

O logon da sessão em que você tenta definir permissões deve ter permissões.

Então, o login que você está usando é um administrador local? Isso significa que o grupo de administradores locais não tem direitos suficientes.

A GUI também executará isso sp_addsrvrolemember . Embora isso diga

Requer associação na função à qual o novo membro está sendo adicionado.

Portanto, o grupo de administradores locais não é membro do sysadmin.

Editar:

Para resolver: use um login que tenha direitos. você pode encontrar um usando sp_helpsrvrolemember

gbn
fonte
Qual é o seu conselho para resolver o meu problema?
George2
Não tenho certeza se há alguma solução ou solução sem reinstalar todo o SQL Server 2008 novamente! :-( #
314 George
"Usar um login que tenha direitos" - como posso obter uma lista de logons com permissão suficiente?
George2
Obrigado, acho que o único membro listado no EXEC sp_helpsrvrolemember 'sysadmin' é chamado sa, é um usuário do Windows? Não consigo encontrar esse usuário na lista Usuários do Windows. Alguma ideia?
George2
1
É um logon SQL reservado, não um usuário do Windows. Na minha instalação de teste do SQL 2008, a conta que instalou o SQL Server está listada.
gbn 1/08/09
4

Em um artigo de outra forma bom, Solucionando problemas: conectando-se ao SQL Server quando os administradores de sistema estão bloqueados , o autor nos diz que tudo o que precisamos fazer para recuperar o controle do SQL Server é:

"Inicie a instância do SQL Server no modo de usuário único usando as opções -m ou -f. Qualquer membro do grupo local de Administradores do computador pode conectar-se à instância do SQL Server como membro da função de servidor fixa sysadmin. "

Infelizmente, o que significa iniciar no modo de usuário único não é uma questão intuitiva. Além disso, pelo menos em minha experiência, a associação ao grupo de Administradores local do meu computador não concedeu o status sysadmin à minha conta de "usuário".

Esta história começou quando, para resolver um problema de associação em meu domínio por um servidor não-DC (uma consequência da alteração do ISP), reconstruí o DC no Windows Server 2008 R2 a partir de 2008. Isso resolveu alguns problemas menores, mas não resolveu a questão da associação pelo servidor errante. Foi necessária uma correção sugerida no ServerFault para fazer isso (no meu caso, era uma questão de redefinir o winsock e o tcpip).

O SQL Server 2008 reside nesse segundo servidor, agora um membro do domínio. Aqui está o problema. Como alguém aponta no ServerFault, é comum pressionar o botão "deixar o usuário atual se tornar administrador de sistemas" ao instalar o Server 2008. Comum também para não considerar mais ninguém. Como essa identidade de usuário único era um membro de um domínio que não existia mais, ninguém tinha permissão para administrar o Sql Server.

Entrei como administrador do servidor local que existia quando o Sql Server foi instalado, mas, embora isso me permitisse acessar o Management Studio, rapidamente descobri que BUILTIN \ Administrators tinha apenas a função de servidor "público".

Após muita pesquisa e experimentação, deparei-me com um artigo fornecendo as especificidades do logon de usuário único http://technet.microsoft.com/en-us/library/ms180965.aspx :

C:\>cd \Program Files\Microsoft SQL Server\MSSQL10_50.1\MSSQL\Binn 
C:\...>sqlservr.exe -m

Para se preparar para executar esta etapa, você deve desligar o Sql Server (que é executado por padrão na maioria dos casos). Use o SQL Configuration Manager para parar o "Sql Server".

Em um prompt de comando, navegue até o local do arquivo do programa (ou equivalente na sua máquina) e emita o comando "sqlservr.exe -m". Se você vir um fluxo de atividades registrado no prompt de comando, estará obtendo sucesso. Se ele falhar ao iniciar, provavelmente você já possui o SQL Server em execução. Desligue isso.

Permita que a instância de usuário único conecte seus bancos de dados. Quando a atividade de log terminar, abra o Management Studio. Você estará automaticamente no modo de usuário único e, portanto, qualquer conta que você represente será um administrador de sistema. Use esse poder para ajustar logins de segurança e funções de servidor.

No meu caso, tive que recriar as contas de domínio no novo domínio, excluir seus nomes no SQL Server e reconstruí-los (devido à situação do SID / GUID), reatribuindo permissões para bancos de dados específicos conforme necessário.

Michael Broschat
fonte
Também há outra maneira de definir parâmetros: abra serviço, gerente, selecione o serviço e, em seguida, propriedades no menu do botão direito. Na guia geral, há uma edição "Iniciar parâmetros". Digite os parâmetros necessários lá. Em seguida, inicie o serviço usando o botão Iniciar nessa página . Os parâmetros definidos não são permanentes e válidos apenas quando o serviço é iniciado na caixa de diálogo Propriedades.
ldsandon 14/10/10
3

O SQL Server 2008 não adiciona mais BUILTIN \ Administrators como membros da função de servidor fixa sysadmin

Isso é verdade, mas, nesse caso, você pode se recuperar dessa situação iniciando o Serviço do SQL Server no modo de usuário único (modo de emergência) e qualquer administrador local poderá fazer logon.

Veja MSDN .

abatishchev
fonte
2

Por padrão, o SQL adiciona o grupo BUILTIN \ Administrators à função sysadmin, o que significa que qualquer administrador local do NT é automaticamente um administrador de sistemas SQL. No Vista, por causa do UAC, você deve executar no modo 'como administrador' para se beneficiar desse privilégio.

  • Se você estiver no Vista, execute a ferramenta cliente (SSMS) 'como administrador' e tente se adicionar como administrador de sistemas.
  • Se o grupo BUILTIN \ Administradores foi removido da função sysadmin acidentalmente, você deve efetuar login com outro login sysadmin. Se não houver outro login sysadmin, você deverá efetuar login com autenticação SQL como sa e usar a senha sa definida durante a instalação. Depois de fazer login como membro do sysadmin, ad BUILTIN \ Admisnitrators volta à função sysadmin. Se os logins do SQL estiverem desativados, parabéns, você simplesmente se exclui da instalação do SQL.
  • Se o grupo BUILTIN \ Administrators foi removido intencionalmente da função sysadmin (conforme KB932881 ), você está tentando invadir o sistema para o qual não tem permissão.
Remus Rusanu
fonte
Oi Remus, Estou confuso que, durante o processo de instalação, não configurei nenhuma senha para sa, existe uma senha padrão?
George2
Outra confusão é: da execução do procedimento de armazenamento sp_helpsrvrolemember para encontrar todos os usuários da função sysadmin, apenas sa está listado, nenhum outro usuário do grupo administrador de máquina local, alguma idéia de por quê?
George2
Não há senha padrão para sa. A senha de sa é definida durante a instalação, se a autenticação mista estiver ativada. Você precisará solicitar ao administrador do seu banco de dados para conceder acesso, se necessário.
Remus Rusanu
"Se os logins do SQL estiverem desabilitados, parabéns, você se exclui da instalação do SQL." Nesse caso, consulte a resposta de Jordi abaixo para iniciar o SQL Server no modo de usuário único.
Michiel van Oosterhout
1

Por padrão, o SQL Server 2008 não adiciona mais BUILTIN \ Administrators como membros da função de servidor fixa sysadmin. Quando você passa pelo instalador, ele pergunta qual conta ou contas devem ter direitos sysadmin. Há um botão que basicamente diz "faça de mim um administrador de sistemas" que adicionará a conta do usuário que está instalando como um administrador de sistemas.

Se eles não adicionaram outros usuários como administrador de sistemas, apenas esse usuário é atualmente um sysamdin. Você precisará que essa pessoa faça logon no SQL Server e conceda os direitos de administrador de sistema dos DBAs.

Mrdenny
fonte
0

Refleti sobre o mesmo problema após uma nova instalação até registrar o servidor, no SQL Server 2008, e tudo correu como deveria


fonte