Quantcast
Channel: SQLServerCentral » SQL Server 2014 » Administration - SQL Server 2014 » Latest topics
Viewing all articles
Browse latest Browse all 6525

Please help to fix this query for listing object permissions for all dbs in an instance

$
0
0
Hi Guys,Please help to fix this query as it's not working for extracting object permissions for all databases when using sp_MSForEachdb. Ref: http://social.technet.microsoft.com/wiki/contents/articles/15180.effective-database-engine-permissions.aspxUSE MASTERGOBEGINIF EXISTS (SELECT TOP 1 * FROM Tempdb.sys.objects (nolock) WHERE name LIKE '#TUser%') DROP TABLE #TUser CREATE TABLE #TUser ( ServerName varchar(256), DBName SYSNAME, [type_desc] varchar(256), [name] SYSNAME NULL, state_desc varchar(256) NULL, permission_name varchar(256), [Object] SYSNAME NULL, [major_id] INT) BEGININSERT INTO #TUserEXEC sp_MSForEachdb 'SELECT @@servername, ''?'' as DBName,pr.type_desc, pr.name, pe.state_desc, pe.permission_name, s.name + ''.'' + oj.name AS Object, major_idFROM sys.database_principals AS prJOIN sys.database_permissions AS pe ON pr.principal_id = pe.grantee_principal_idJOIN sys.objects AS oj ON oj.object_id = pe.major_idJOIN sys.schemas AS s ON oj.schema_id = s.schema_idWHERE class_desc = ''OBJECT_OR_COLUMN'' ORDER BY pr.name, pr.type_desc; ' END SELECT *FROM #TUserORDER BY DBName, [name]DROP TABLE #TUserENDBut it works without sp_MSForEachdb when running under the context of each db./*SELECT pr.type_desc, pr.name, pe.state_desc, pe.permission_name, s.name + '.' + oj.name AS Object, major_idFROM sys.database_principals AS prJOIN sys.database_permissions AS pe ON pr.principal_id = pe.grantee_principal_idJOIN sys.objects AS oj ON oj.object_id = pe.major_idJOIN sys.schemas AS s ON oj.schema_id = s.schema_idWHERE class_desc = 'OBJECT_OR_COLUMN';*/Many thanks!

Viewing all articles
Browse latest Browse all 6525

Trending Articles