Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 SQL Server 2008 Forums
 SQL Server Administration (2008)
 List users with db_owner role

Author  Topic 

arvind_ramugade
Starting Member

30 Posts

Posted - 2012-03-20 : 02:43:36
Hi,
This is regarding listing users with db_owner privileges.
DBA says that I've been assigned db_owner role in MSSQL database
However , when I checked using following , it displays following

1> sp_helpuser
2> go
UserName RoleName LoginName
arvinr public arvinr

Is there a query to list all users having db_owner privileges ?

Thanks !
Arvind.

ramugade

sqlfresher2k7
Aged Yak Warrior

623 Posts

Posted - 2012-03-20 : 15:38:07
Try this..

USE master
GO


DECLARE @dbname SYSNAME


SET NOCOUNT ON


CREATE TABLE #logins
(
dbname SYSNAME NOT NULL,
sid VARBINARY(85) NOT NULL,
name SYSNAME NOT NULL,
isdbo SMALLINT NOT NULL
)


DECLARE dbcsr INSENSITIVE CURSOR FOR
SELECT name FROM dbo.sysdatabases
WHERE status & 33760 = 0
FOR READ ONLY


OPEN dbcsr


FETCH NEXT FROM dbcsr INTO @dbname


WHILE @@FETCH_STATUS = 0
BEGIN


EXEC ('USE ' + @dbname + '


DECLARE @dborole SMALLINT


SELECT @dborole = uid
FROM dbo.sysusers
WHERE name = N''db_owner'' AND status = 0


INSERT INTO #logins (dbname, sid, name, isdbo)
SELECT DB_NAME(), sid, name, ISNULL(groupuid, 0)
FROM sysusers AS su LEFT JOIN (SELECT memberuid, groupuid FROM sysmembers
WHERE groupuid = @dborole) AS sm
ON su.uid = sm.memberuid
WHERE sid IS NOT NULL')


FETCH NEXT FROM dbcsr INTO @dbname


END


CLOSE dbcsr


DEALLOCATE dbcsr


SET NOCOUNT OFF


SELECT sl.loginname,
ISNULL(l.dbname, N'<None>') as dbname,
ISNULL(l.name, N'<None>') AS name,
CASE l.isdbo WHEN 0 THEN 'No' ELSE 'Yes' END AS dbo
FROM master.dbo.syslogins AS sl LEFT JOIN #logins AS l
ON sl.sid = l.sid
WHERE IS_SRVROLEMEMBER ( N'sysadmin', sl.loginname) = 0
UNION ALL
SELECT loginname, N'<All>', N'<N/A>', N'Yes'
FROM master.dbo.syslogins
WHERE IS_SRVROLEMEMBER ( N'sysadmin', loginname) = 1
ORDER BY sl.loginname, l.dbname


DROP TABLE #logins



Go to Top of Page
   

- Advertisement -