O que acontece com meus logins do SQL Server se eu alterar um nome de usuário do domínio do Windows

3

A minha pergunta é muito semelhante a esta questão Mudar o nome de usuário do domínio do Windows , mas a pergunta original não responde explicitamente a minha ligeira variação.

Se eu mudar um nome de usuário do Windows (se ele se casar por exemplo) meu login no Sql Server que eu criei para o nome de usuário antigo será atualizado para refletir a alteração ou terei que criar um novo login para o usuário atualizado do windows ?

Obrigado Ben

    
por BenCr 23.03.2011 / 13:30

4 respostas

4

Se o login estiver vinculado à conta de domínio, tudo bem, porque no nível básico depende do SID do usuário e não do nome de usuário real.

Se o novo nome de usuário não funcionar, talvez seja necessário redefinir o cache do token com este comando:

DBCC FREESYSTEMCACHE('USERSTORE_TOKENPERM');
    
por 23.03.2011 / 13:37
1

As permissões devem continuar funcionando corretamente, mas o nome de usuário exibido no SQL Server será o nome antigo em alguns locais até que você o atualize manualmente.

Enquanto o método drop / create funcionará, e aparentemente criar um login sql duplicado com o mesmo SID parece funcionar para alguns aqui, eu recomendo apenas atualizar o registro de login existente no SQL Server (testado no SQL 2012).

ALTER LOGIN [DomainName\OldUserName] WITH NAME = [DomainName\NewUserName];

Isso alterará de forma clara o registro de login do sistema existente para refletir o novo nome de usuário correto para esse usuário de domínio (SID).

    
por 09.11.2015 / 23:27
0

Ele realmente corresponde ao SID, não ao nome. Então você ficará bem.

Notas:

  • É um login do Windows que você quer dizer. Um login do SQL Server não está associado a um usuário do Windows.
  • A melhor prática é usar grupos do Windows para permissões, não para usuários individuais do Windows
por 23.03.2011 / 13:36
0

Você pode facilmente verificar se eles têm o mesmo SID após renomear usando o script abaixo e verificar se você obtém o mesmo SID antes e depois. Supondo que você renomeou Domain\LoginA para Domain\LoginB :

SELECT  sid
FROM    sys.server_principals
WHERE   name IN (N'Domain\LoginA')

e

SELECT  sid 
FROM    sys.server_principals 
WHERE   name IN (N'Domain\LoginB')

deve dar-lhe o mesmo SID, o que prova o ponto de @ Hyppy.

    
por 23.03.2011 / 21:41