Usuários Orfãos? Utilize – sp_change_users_login

Posted on junho 27, 2012

5


Recurso que possibilita  restaurar usuários orfãos do banco de dados.

 

O problema ocorre porque não há vinculo entre o login e o usuário do banco de dados. Esse vínculo entre login e usuário se dá pelo que chamamos de SID (Security Identifier).

 

Sendo assim essa procedure faz com que possamos corrigir esse vínculo.

 

Para listar todos os usuários orfãos……

 

USE geral

GO

 

EXEC sp_change_users_login ‘Report’

image

(Figura 1 – Usuários Orfãos Banco de Dados Geral.)

 

Havendo um login para esse usuário podemos solucionar da seguinte forma…..

 

Capture

(Figura 2 – Verificando vínculo login usuário.)

 

Como não possímos esse vínculo podemos utilizar essa procedure para nos ajudar.

USE geral

GO

 

EXEC sp_change_users_login ‘Auto_Fix’,‘Informativo’

 

The row for user ‘Informativo’ will be fixed by updating its login link to a login already in existence.
The number of orphaned users fixed by updating users was 1.
The number of orphaned users fixed by adding new logins and then updating users was 0.

 

Se verificarmos novamente o usuário informativo veremos que:

 

Capture

(Figura 3 – Login e Usuário mapeado.)

 

 

Se o nome do login e usuário for diferente, sem problemas…..

 

USE geral

GO

 

EXEC sp_change_users_login ‘Update_One’,‘LojaOab’,‘LojaOabSite’

 

image

(Figura 4 – Vínculo Login LojaOabSite com usuário LojaOab.)

 

Se desejar criar o usuário na hora do vínculo…..

 

USE geral

GO

 

EXEC sp_change_users_login ‘Auto_Fix’, ‘gd’, NULL, ‘@dmin153624’

 

Barring a conflict, the row for user ‘gd’ will be fixed by updating its link to a new login.
The number of orphaned users fixed by updating users was 0.
The number of orphaned users fixed by adding new logins and then updating users was 1.

 

image

(Figura 5 – Criação de um novo login e mapeamento com usuário já criado.)

 

Sendo assum esse recurso facilita bastante durante um ajuste de usuários orfãos dentro do banco de dados.

 

 

Para evitar esse problema sempre utilize o sp_help_revlogin.