আমি কীভাবে জানতে পারি যে কোনও ব্যবহারকারীর নির্দিষ্ট কার্যকর অনুমতি রয়েছে কেন?


14

আমি জানি যে আমি ব্যবহার করে কার্যকর অনুমতিগুলি জিজ্ঞাসা করতে পারি 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          
 ...

এটি আমাকে বলে যে বর্তমান ব্যবহারকারীর myTableডাটাবেসে SELECT, INSERT, UPDATE ইত্যাদি অনুমতি রয়েছে কিনা 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
 ...

দুর্ভাগ্যক্রমে, এসকিউএল সার্ভার ডকুমেন্টেশনে আমি এই জাতীয় কোনও ফাংশন খুঁজে পাইনি। এমন কোনও সরঞ্জাম বা স্ক্রিপ্ট রয়েছে যা এই কার্যকারিতাটি সরবরাহ করে?


আপনি কেন এটি একটি টেক্সট ফাইলে রফতানি করবেন না ?, আপনি কোন ওএস ব্যবহার করছেন?
jcho360

1
@ jcho360: কোনও ফাংশন নেই fn_my_permission_ex, তাই আমি রফতানি করতে পারি এমন কিছুই নেই। আমি জিজ্ঞাসা করছি that কার্যকারিতা সহ কোনও ফাংশন বা সরঞ্জাম রয়েছে কিনা ।
হেইনজি

আপনি এসএসএমএস ব্যবহার করছেন?
jcho360

1
দুর্দান্ত প্রশ্ন। আমি খুব দীর্ঘ সময় ধরে এটি বের করার চেষ্টা করছি। fn_my_perifications কিন্ডা কাজ করে তবে প্রায়শই এমন অনুমতি দেখায় যা আমি কোনও উত্স পর্যন্ত জানতে পারি না।
সিউডোডোড

উত্তর:


8

নীচের নিবন্ধ থেকে আপনি সুরক্ষা সম্পর্কিত কিছু ভাল তথ্য পেতে পারেন।

এসকিউএল সার্ভারের অনুমতিগুলি পর্যালোচনা | টেকরেপলিক্স http://tek.io/KfzEyp

ছাড়া:

নিম্নলিখিত ডাটাবেসের মধ্যে কোন ব্যবহারকারীদের নির্দিষ্ট অনুমতি রয়েছে তা বোঝাতে নিম্নলিখিত কোয়েরিতে sys.datedia_permission সিস্টেম ভিউ ব্যবহার করা হয়েছে।

SELECT
        dp.class_desc
       ,dp.permission_name
       ,dp.state_desc
       ,ObjectName = OBJECT_NAME(major_id)
       ,GranteeName = grantee.name
       ,GrantorName = grantor.name
    FROM
        sys.database_permissions dp
        JOIN sys.database_principals grantee
        ON dp.grantee_principal_id = grantee.principal_id
        JOIN sys.database_principals grantor
        ON dp.grantor_principal_id = grantor.principal_id
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.