20 de jan. de 2012

Recuperando logins de usuarios SQL Server - Usuários orfãos

Ao tentar configurar meu usuario numa base de dados recuperada do SQL sempre tive problemas com o login dos usuários, mas sempre contornei o problema de uma forma muito simples, eu tentava cadastrar o usuário novamente e pronto, apresentava erro, mas tudo funcionava na mais perfeita paz.
Hoje nao foi assim, o problema persistia, e procurando um pouco, graças ao msdn, tudo ficou bem.
- Verificando quais usuários estão órfãos:
EXEC sp_change_users_login 'Report';


- Executando o script para ajustar usuários x logins:
SET NOCOUNT ON
SET QUOTED_IDENTIFIER OFF
GO

USE
GO

DECLARE @sql varchar(100);
DECLARE curSQL CURSOR FOR
SELECT 'EXEC sp_change_users_login "Auto_Fix", "' + name + '", NULL, "senha"' FROM sysusers
WHERE issqluser = 1
AND suser_sname(sid) IS NULL
AND name NOT IN ('dbo', 'guest', 'INFORMATION_SCHEMA', 'sys')
OPEN curSQL

FETCH curSQL INTO @sql

WHILE @@FETCH_STATUS = 0 BEGIN
EXEC (@sql)
PRINT @sql
FETCH curSQL INTO @sql
END
CLOSE curSQL

DEALLOCATE curSQL
GO

Tem mais detalhes sobre o assunto na fonte, ou nos seguintes links:
http://www.lockergnome.com/sqlsquirrel/2009/05/16/fixing-orphaned-users-in-sql-server-2005/
http://bofe.wordpress.com/2008/03/14/problem-with-orphaned-userslogins-in-sql-server-2005-migration/
http://support.microsoft.com/default.aspx/kb/274188
http://www.fileformat.info/tip/microsoft/sql_orphan_user.htm
http://vyaskn.tripod.com/troubleshooting_orphan_users.htm


Fonte MSDN

0 comentários: