Um nome de usuário foi alterado no ActiveDirectory, mas o antigo UserName ainda está sendo mostrado no SQL Profiler

3

Alteramos o nome de usuário de um dos usuários do ActiveDirectory, mas agora, dias depois, o nome de usuário antigo ainda é exibido no SQL Profiler quando eles fazem login. Esses SIDs são armazenados em cache na localidade com uma cópia do nome de usuário? Posso limpar esse cache?

O usuário não tem acesso "direto" ao servidor SQL, mas está em um grupo de segurança local que tem acesso ao servidor.

    
por NTDLS 25.02.2010 / 16:59

2 respostas

2

Há cache ocorrendo no SQL. Aqui está como vê-lo no SQL Server 2008 R2 e como redefini-lo. Isso é para um usuário do Windows que está em um grupo AD e onde o grupo foi adicionado como um login no SQL. O usuário não foi adicionado diretamente como um login do SQL.

conecte-se ao nome de usuário original

Conecte-se ao SQL como usuário. Digamos que o usuário seja DOMAIN \ test conectando-se ao SQL Server Management Studio. Verifique as informações do usuário que você fez login.

select SYSTEM_USER

Saída: DOMAIN \ test

sp_who2

A saída inclui a coluna Login, que possui linhas para: DOMAIN \ test

Pesquisador de Objetos > clique com o botão direito do mouse no topo da árvore > Propriedades A conexão mostra: DOMAIN \ test

Você também pode ver o nome de usuário mencionado aqui: Explorador de Objetos > clique com o botão direito do mouse no topo da árvore > Monitor de atividade > Processos

e aqui: Explorador de Objetos > Agente do SQL Server > Monitor de atividade de trabalho

conecte-se com o novo nome de usuário

Agora mude o nome de usuário do AD para test2. Reconecte-se no SQL Server Management Studio. Somente a caixa de propriedades da conexão mostra o novo nome de usuário DOMAIN \ test2. Se o servidor / serviço não foi reiniciado ou um timeout / reset não ocorreu, o nome de usuário antigo ainda será mostrado para as outras saídas.

redefinir a conexão

Mesmo que você efetue logout e deixe todas as conexões terminarem ou se você as eliminar, ao efetuar login novamente como test2, elas continuarão sendo referenciadas como o nome de usuário original. Aqui está uma maneira de forçar uma redefinição sem reiniciar o servidor ou o serviço SQL. Crie um novo login do SQL diretamente para a conta DOMAIN \ test2. Exclua imediatamente. Há uma verificação que ocorre e libera a entrada armazenada em cache. Agora, quando você se conecta como test2, todas as verificações acima fazem referência ao novo nome de usuário.

    
por 25.04.2018 / 16:22
1

Não é armazenado em cache no SQL Server - você pode vê-lo na exibição do sistema:

SELECT name, sid FROM sys.server_principals;

Você pode atualizar o nome do LOGIN executando a instrução ALTER LOGIN, semelhante a:

ALTER LOGIN OldName WITH NAME = NewName; 

Execute a instrução SELECT acima para ver a alteração desejada.

    
por 25.02.2010 / 17:58