Saya tahu bahwa saya dapat meminta izin yang efektif dengan menggunakan 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
...
Ini memberitahu saya apakah pengguna saat ini memiliki izin SELECT, INSERT, UPDATE, dll di myTabledalam database myDatabase.
Apakah mungkin untuk dengan mudah mengetahui mengapa pengguna memiliki izin ini? Misalnya, saya ingin memiliki fungsi fn_my_permissions_exyang menampilkan reasonkolom tambahan :
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
...
Sayangnya, saya tidak dapat menemukan fungsi seperti itu dalam dokumentasi SQL Server. Apakah ada alat atau skrip yang menyediakan fungsi ini?
fn_my_permission_ex, jadi tidak ada yang bisa saya ekspor. Saya bertanya apakah ada fungsi atau alat dengan fungsi itu .