Şunu kullanarak etkili izinleri sorgulayabileceğimi biliyorum 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
...
Bu bana geçerli kullanıcının myTable
veritabanında SELECT, INSERT, UPDATE vb. İzinleri olup olmadığını söyler myDatabase
.
Kullanıcının neden bu izinlere sahip olduğunu kolayca bulmak mümkün müdür ? Örneğin, fn_my_permissions_ex
ek bir reason
sütun çıktısı olan bir fonksiyona sahip olmak isterim :
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
...
Ne yazık ki, SQL Server belgelerinde böyle bir işlevi bulamadım. Bu işlevi sağlayan bir araç veya komut dosyası var mı?
fn_my_permission_ex
, bu yüzden dışa aktarabileceğim bir şey yok. Bununla bir işlev veya aracı olup olmadığını soruyorum işlevselliği .