Skip to content

Instantly share code, notes, and snippets.

@tcartwright
Last active July 17, 2017 02:12
Show Gist options
  • Select an option

  • Save tcartwright/fbadb02eea098121cd431a32ea992aee to your computer and use it in GitHub Desktop.

Select an option

Save tcartwright/fbadb02eea098121cd431a32ea992aee to your computer and use it in GitHub Desktop.
SQL SERVER: List Users Effective Permissions By Object
SELECT n.[Name], o.[type_desc], p.[perms]
FROM sys.[objects] o
INNER JOIN sys.[schemas] s ON [o].[schema_id] = [s].[schema_id]
CROSS APPLY (SELECT [Name] = QUOTENAME(s.[name]) + '.' + QUOTENAME(o.[name])) n
OUTER APPLY (
SELECT perms = STUFF((
SELECT ',' + ip.[permission_name]
FROM sys.fn_my_permissions(n.[Name], 'OBJECT') ip
GROUP BY ip.[permission_name]
FOR XML PATH('')
), 1, 1, '')
) p
WHERE OBJECTPROPERTY(o.[object_id], 'IsMsShipped') = 0
AND o.[type] IN ('U', 'TT', 'V', 'P', 'IF', 'TF', 'FN', 'FS', 'FT', 'PC')
AND (o.[name] NOT IN ('fn_diagramobjects', 'sysdiagrams') AND o.[name] NOT LIKE 'sp_%diagram%')
ORDER BY o.[type], n.[Name]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment