En caso de que querais buscar usuarios huérfanos en BBDD (que no tengan login asociado), como recordais podeis utilizar el procedimiento almacenado sp_change_users_login.
Pues bien, he aqui un buen tip para detectar todos los usuarios huérfanos de todas las BBDD que tengas con una simple consulta:
sp_msforeachdb 'use ?;
declare @mitabla as table (dbname sysname default db_name(),uname sysname, usid varbinary(max))
insert into @mitabla(uname,usid)
EXEC sp_change_users_login ''Report''
select * from @mitabla'
Ahora bien, si estais en un caso como el mio en que tengo que revisar más de 150 BBDD…quizás te resulte esto mas util
DECLARE cursorBBDD CURSOR read_only fast_forward forward_only FOR
select name from sys.databases where database_id>4
declare @nombreBBDD sysname
create table #mitabla (dbname sysname default db_name(),uname sysname, usid varbinary(max))
OPEN cursorBBDD
FETCH NEXT FROM cursorBBDD
INTO @nombreBBDD
WHILE @@FETCH_STATUS = 0
BEGIN
declare @sentenciaSQL nvarchar(max)
set @sentenciaSQL = 'use ' + @nombreBBDD + ';
insert into #mitabla(uname,usid)
EXEC sp_change_users_login ''Report'''
--print @sentenciaSQL
exec(@sentenciaSQL)
FETCH NEXT FROM cursorBBDD
into @nombreBBDD
END
CLOSE cursorBBDD
DEALLOCATE cursorBBDD
select * from #mitabla
drop table #mitabla
Suerte y que no detecteis muchos!
No hay comentarios:
Publicar un comentario