मुझे पता है कि मैं प्रभावी अनुमतियों का उपयोग करके क्वेरी कर सकता हूं 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
...
यह मुझे बताता है कि क्या वर्तमान उपयोगकर्ता के पास SELECT, INSERT, UPDATE, आदि myTableडेटाबेस में अनुमतियाँ हैं myDatabase।
क्या यह आसानी से पता चल सकता है कि उपयोगकर्ता के पास ये अनुमतियां क्यों हैं? उदाहरण के लिए, मुझे एक फ़ंक्शन पसंद है fn_my_permissions_exजो एक अतिरिक्त reasonकॉलम आउटपुट करता है :
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
...
दुर्भाग्य से, मुझे SQL सर्वर प्रलेखन में ऐसा कोई फ़ंक्शन नहीं मिला। क्या कोई उपकरण या स्क्रिप्ट है जो यह कार्यक्षमता प्रदान करती है?
fn_my_permission_ex, इसलिए ऐसा कुछ भी नहीं है जो मैं निर्यात कर सकता हूं। मैं पूछ रहा हूं कि क्या उस कार्यक्षमता के साथ कोई फ़ंक्शन या टूल है ।