Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
select DISTINCT o.name, loginname = (case when (o.sid = 0x00)
then NULL else l.loginname end), user_name(o.gid), o.uid, o.hasdbaccess
from dbo.sysusers o left join
(select sid, loginname, 1 as matched from master.dbo.syslogins) l
on l.sid = o.sid where ((o.issqlrole != 1 and o.isapprole != 1 and o.status != 0
and matched is not null) or (o.sid = 0x00) and o.hasdbaccess = 1)
and o.isaliased != 1
Use Master
go
Create Proc ListAllNtUsersAndDatabases
as
Create Table #DBUsers(DB varchar(3000),ssid varbinary(85))
Create Table #NTUsers(Accountname varchar(300),type varchar(300),Privilege varchar(300), mappedlogin varchar(300),permission varchar(300))
declare @dbname varchar(3000)
Select @dbname =''
while not @dbname is null
begin
select @dbname = min(name) from master..sysdatabases where name > @dbname
if @dbname is null
begin
break
end
Insert Into #DbUsers (db,ssid)
select @dbname, sid from lanemessages..sysusers where isntgroup=1
end
join #DBusers db on sl.sid = db.ssid
insert into #NTUsers (AccountName,Type,Privilege,Mappedlogin,permission)
EXEC xp_logininfo 'traffic\toll collectors','members'
join #DBusers db on sl.sid = db.ssid
select distinct accountname,name,db
from #NTUSers N
join (select sl.name,db.db from master..sysxlogins sl join #DBusers db on sl.sid = db.ssid) X
on X.Name = N.Permission
drop table #NTUsers
drop table #DBUsers
Create Proc ListAllNTUsersAndDBs
as
Create Table #DBUsers(DB varchar(3000),ssid varbinary(85))
Create Table #NTUsers(Accountname varchar(300),type varchar(300),Privilege varchar(300), mappedlogin varchar(300),permission varchar(300))
declare @dbname varchar(3000)
Select @dbname =''
while not @dbname is null
begin
select @dbname = min(name) from master..sysdatabases where name > @dbname
if @dbname is null
begin
break
end
Insert Into #DbUsers (db,ssid)
select @dbname, sid from lanemessages..sysusers where isntgroup=1
end
--Select distinct sl.name,db.db from master..sysxlogins sl join #DBusers db on sl.sid = db.ssid
Declare @NtGroup varchar(300)
Select @ntGroup=''
while not @NtGroup is null
begin
Select @NtGroup = min(sl.name)
from master..sysxlogins sl join #DBusers db on sl.sid = db.ssid
where sl.name > @NtGroup
if @NtGroup is null
begin
break
end
insert into #NTUsers (AccountName,Type,Privilege,Mappedlogin,permission)
EXEC xp_logininfo @NtGroup,'members'
end
select distinct accountname,name,db
from #NTUSers N
join (select sl.name,db.db from master..sysxlogins sl join #DBusers db on sl.sid = db.ssid) X
on X.Name = N.Permission
drop table #NTUsers
drop table #DBUsers
go
Alter Proc sp_ListAllNTUsersAndDBs
as
Create Table #DBUsers(DB varchar(3000),ssid varbinary(85))
Create Table #NTUsers(Accountname varchar(300),type varchar(300),Privilege varchar(300), mappedlogin varchar(300),permission varchar(300))
Create Table #NTUsers2(Accountname varchar(300),type varchar(300),Privilege varchar(300), mappedlogin varchar(300),permission varchar(300))
Create Table #Admins([Name] varchar(3000),DB varchar(3000))
declare @dbname varchar(3000)
Select @dbname =''
while not @dbname is null
begin
select @dbname = min(name) from master..sysdatabases where name > @dbname
if @dbname is null
begin
break
end
Insert Into #DbUsers (db,ssid)
exec ('select ''' + @dbname + ''', sid from ' + @dbname + '..sysusers where isntname=1')
end
Declare @NtGroup varchar(300)
Declare @Type varchar(300)
Select @ntGroup=''
while not @NtGroup is null
begin
Select @NtGroup = min(sl.name)
from master..sysxlogins sl left Outer join #DBusers db on sl.sid = db.ssid
where sl.name > @NtGroup and sl.name like '%\%'
if @NtGroup is null
begin
break
end
insert into #NTUsers2 (AccountName,Type,Privilege,Mappedlogin,permission)
EXEC master..xp_logininfo @NtGroup
If exists (select * from #NtUsers2 where type='group')
begin
if not @NtGroup ='nt authority\system'
begin
insert into #NTUsers (AccountName,Type,Privilege,Mappedlogin,permission)
EXEC master..xp_logininfo @NtGroup,'members'
end
end
else
Begin
insert into #NTUsers (AccountName,Type,Privilege,Mappedlogin,permission)
EXEC master..xp_logininfo @NtGroup
end
if Exists (Select * from #NTUsers2 where Privilege ='admin')
begin
insert into #Admins
Select MappedLogin ,db.Name from #NTUsers2 cross join SysDatabases db
end
delete from #NtUsers2
end
-- Get Special BuiltIn Group Membership
select distinct accountname as [NtUserLogin],x.name as [SQLLogin],db as [Access to Database]
from #NTUSers N
join (select sl.name,db.db
from master..sysxlogins sl join #DBusers db on sl.sid = db.ssid) X
on X.Name = N.mappedlogin
Union
Select a.[name] as [Windows Account],b.Permission [Windows Group],a.[db] [DataBase] from
#Admins a join #NTUsers b
on a.Name = b.AccountName and not Permission is null
drop table #NTUsers
drop table #DBUsers