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 myTable
dalam database myDatabase
.
Apakah mungkin untuk dengan mudah mengetahui mengapa pengguna memiliki izin ini? Misalnya, saya ingin memiliki fungsi fn_my_permissions_ex
yang menampilkan reason
kolom 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 .