Sé que puedo consultar permisos efectivos usando sys.fn_my_permissions:
USE myDatabase;
SELECT * FROM fn_my_permissions('dbo.myTable', 'OBJECT')
entity_name | subentity_name | permission_name
------------------------------------------------
dbo.myTable | | SELECT
dbo.myTable | | UPDATE
...
Esto me dice si el usuario actual tiene permisos SELECT, INSERT, UPDATE, etc. myTableen la base de datos myDatabase.
¿Es posible descubrir fácilmente por qué el usuario tiene estos permisos? Por ejemplo, me encantaría tener una función fn_my_permissions_exque genere una reasoncolumna adicional :
USE myDatabase;
SELECT * FROM fn_my_permissions_ex('dbo.myTable', 'OBJECT')
entity_name | subentity_name | permission_name | reason
------------------------------------------------------------------------------------------------------------------------------------
dbo.myTable | | SELECT | granted to database role public
dbo.myTable | | UPDATE | member of group MYDOMAIN\Superusers, which belongs to database role db_datawriter
...
Desafortunadamente, no pude encontrar dicha función en la documentación de SQL Server. ¿Existe alguna herramienta o script que brinde esta funcionalidad?
sql-server
security
permissions
debugging
Heinzi
fuente
fuente

fn_my_permission_ex, por lo que no hay nada que pueda exportar. Estoy preguntando si hay una función o herramienta con esa funcionalidad .Respuestas:
Puede encontrar buena información sobre seguridad en el artículo a continuación.
Revisión de permisos de SQL Server | TechRepublic http://tek.io/KfzEyp
Excepto:
fuente