So che posso richiedere autorizzazioni efficaci 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
...
Questo mi dice se l'utente corrente dispone delle autorizzazioni SELECT, INSERT, UPDATE, ecc. myTable
Nel database myDatabase
.
È possibile scoprire facilmente perché l'utente dispone di queste autorizzazioni? Ad esempio, mi piacerebbe avere una funzione fn_my_permissions_ex
che genera una reason
colonna aggiuntiva :
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
...
Sfortunatamente, non sono riuscito a trovare tale funzione nella documentazione di SQL Server. Esiste uno strumento o uno script che fornisce questa funzionalità?
fn_my_permission_ex
, quindi non è possibile esportare nulla. Sto chiedendo se esiste una funzione o uno strumento con quella funzionalità .