【Data Platform】/SQL Server

[2k] 해당 로그인이 소유한 개체 찾기

디비랑 2008. 9. 7. 15:49
  1. /**********************************************************************************************
    -- Title : [2k] 해당 로그인이 소유한 개체 찾기
    -- Reference : 웹검색
    -- Key word : sysusers, sysobjects, sysdatabases
    **********************************************************************************************/

    declare @sql varchar(400)
    ,       @login sysname

    set @login = 'mapbak'

    declare curDbName cursor read_only
    for select name
        from master..sysdatabases

    declare @name varchar(40)
    open curDbName

    fetch next from curDbName into @name
    while (@@fetch_status <> -1)
    begin
      if (@@fetch_status <> -2)
      begin
         select @name as DBname
         set @sql = 'use ' + @name + ' select o.name as objectname, o.uid, u.name as username '
         set @sql = @sql + ' from sysobjects o join sysusers u on o.uid = u.uid '
         set @sql = @sql + ' where sid = suser_sid('''+@login+''')'

         exec (@sql)
       
      end
      fetch next from curDbName into @name
    end

    close surDbName
    deallocate curDbName
    GO