Como criar o logon do Sql Server para uma conta de domínio?

14

Todos,

Eu tenho o Sql Server 2008 instalado em um servidor (digamos Server1 ) em um domínio (digamos AD ). Eu também tenho uma conta de domínio chamada AD \ Sql1 . Esta não é uma conta de administrador no domínio ( AD ), mas quero que seja um administrador no Server1 . E, em seguida, crie um logon no Sql Server para a conta do domínio (não a conta local).

Como faço isso?

Questões:

  1. O usuário AD \ Sql1 , eu quero ele como Admin no Server1 . Para isso, basta criar uma conta local com o mesmo nome de usuário (digamos, Server1 \ Sql1 ) e tornar a conta local um administrador na máquina. Essa conta local será mapeada automaticamente para a conta de domínio com o mesmo nome? Pode ser que devo acrescentar aqui que CREATE LOGIN [AD\Sql1] FROM WINDOWSnão funcionou para mim. Eu tentei e recebi um erro dizendo user does not exist in Windows(algo assim)
  2. Agora, se a técnica acima funcionar. Vamos supor, AD \ Sql1 , se torne um administrador no Sever1 . Então, em teoria, não preciso criar um logon Sql para essa conta de domínio do Windows no Sql Server, certo? Todos os administradores locais que fazem parte de BUILTIT \ Admins têm acesso sysadmin automaticamente ao Sql Server, certo?

Onde é que eu me enganei? Compartilhe os URLs que possam explicar melhor esse conceito.

Editar: devo acrescentar também que as perguntas 1 e 2 são importantes de forma independente. Eu sei como adicionar uma conta de domínio / Windows como sysadmin. Mas estou interessado em saber como o mapeamento funciona entre o domínio e as contas locais. Meu objetivo aqui não é como adicionar uma conta local como sysadmin, posso fazer isso rapidamente. Minha intenção não é ser rude, mas ser o mais claro possível. Se minha pergunta ainda não estiver clara, entre em contato para que eu possa adicionar mais detalhes.

Obrigado,
_UB

Editar: Gramática

UB01
fonte

Respostas:

13

Não crie uma conta local com o mesmo nome que a conta de domínio. Se você deseja adicionar um login de domínio como administrador de sql, faça o seguinte:

  • crie um login para a conta do domínio: create login [AD\Sql1] from windows;
  • adicione o logon ao grupo sysadmin: exec sp_addsrvrolemember 'AD\Sql1', 'sysadmin';

Feito. Você alcançaria o mesmo resultado se simplesmente adicionasse a AD\Sqlconta aos administradores locais via net localgroup Administrators /add AD\Sql1(de um shell CMD), mas essa não é a solução correta, pois concede AD\Sql1todos os privilégios de administrador do NT, além de conceder a ele o administrador SQL, o que não é declarado como um requisito, portanto, é uma elevação desnecessária. BTW, a regra de que os membros do grupo local de Administradores são administradores do SQL não está implícita, é um privilégio explícito concedido por padrão durante a Instalação do SQL e pode ser revogada para que você precise verificar isso.

Remus Rusanu
fonte
Obrigado, este comentário tem algumas informações que eu poderia usar. Mas eu tenho uma pergunta de acompanhamento. quando tentei adicionar o login sql usando CREATE LOGIN [AD\Sql1] FROM WINDOWS, recebi um erro dizendo que o usuário não existe no Windows. Então, eu tive que adicioná-lo como usado para a máquina local (então funciona).
UB01 28/03
Analisarei o ponto que você mencionou sobre '..os administradores locais estão por padrão sysasminsna máquina'. Obrigado, vou ler sobre isso. Mas como funciona o mapeamento? Entre contas de domínio e contas locais com o mesmo nome.
UB01 28/03
Se a máquina em que a instância do SQL Server estiver instalada fizer parte do domínio, você poderá adicionar uma conta de domínio sem nenhum problema.
21412 JackLock
Ok, isso é o que eu pensava, mas eu continuei recebendo este erro: ...user could not be found in windows. Pode haver algo mais acontecendo. Vou verificar novamente.
UB01 28/03
1
Ocorreu um erro ao dizer que o usuário não existe no Windows : isso significa que sua máquina host SQL não é membro dos domínios do AD ou de um domínio confiável AD. Você deve adicionar a máquina ao domínio do AD. Agora você está adotando a abordagem chamada 'contas espelhadas do NT' (talvez sem saber que está fazendo isso ...) e essa é uma abordagem errada. Adicione a máquina de hospedagem SQL ao domínio do AD.
Remus Rusanu 28/03
2

Conecte-se à sua instância no SSMS. Expanda segurança / logins. Clique com o botão direito do mouse em adicionar novo login, insira as informações. Nas funções de servidor, conceda a sysadmin se desejar que ele tenha poder total sobre a instância SQL. Feito. Esta conta não precisa ser administrador local na sua máquina Windows para ser sysadmin no SQL Server.

Eric Higgins
fonte
Obrigado pelo comentário rápido. Entendo o conceito que você transmitiu em sua resposta. Minha pergunta (pode não estar muito clara) é entender como a relação (ou mapeamento) funciona entre contas de domínio e contas locais. E como isso afeta o Sql Server.
UB01
Um SID é criado no banco de dados mestre para todas as contas, domínio ou contas apenas do SQL Server.
Eric Higgins
SID created for each account..é um conceito que eu entendo. Deixe-me dar um exemplo: a conta é AD\Sql1igual Server1\Sql1à do servidor. Cada um tem um ID de segurança separado que é mapeado para que o SO saiba que eles são o mesmo? Isso acontece mesmo? (Eu só estou supondo, eu não sei)
UB01
Entendo. Você está mais tentando entender os creds do Windows, eu acho. O AD e as contas locais do Windows não são iguais (mesmo que o nome seja o mesmo). Aqui estão algumas informações sobre como os SIDs de domínio e os tokens de acesso funcionam. Espero que isso ajude: technet.microsoft.com/en-us/library/cc785913(v=ws.10).aspx
Eric Higgins
Obrigado, vou ler esse artigo e ver se isso me ajuda a entender melhor os conceitos.
UB01 28/03