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 útil 🙂
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! 🙂