मुझे पता है कि मैं प्रभावी अनुमतियों का उपयोग करके क्वेरी कर सकता हूं 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
, इसलिए ऐसा कुछ भी नहीं है जो मैं निर्यात कर सकता हूं। मैं पूछ रहा हूं कि क्या उस कार्यक्षमता के साथ कोई फ़ंक्शन या टूल है ।