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

 

0 Shares:
Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

You May Also Like