আমি অক্ষম অ্যাক্সেস করতে সবচেয়ে ভালো উপায় খোঁজ করছি sys.tables
/ Information Schema
SQL সার্ভার একটি ব্যবহারকারী / দলের জন্য।
আমি এই থ্রেডটি ২০০৮ সাল থেকে পেয়েছি
এটি এমনভাবে কীভাবে অ্যাক্সেসকে অস্বীকার করার উপায় দেখায় [sys].[something]
:
DENY SELECT ON [sys].[columns] TO DenySystemTableSelectRole
GO
DENY SELECT ON [sys].[tables] TO DenySystemTableSelectRole
GO
DENY SELECT ON [sys].[syscolumns] TO DenySystemTableSelectRole
GO
DENY SELECT ON [sys].[sysobjects] TO DenySystemTableSelectRole
GO
তবে এতে অ্যাক্সেস অক্ষম করার উপায় নেই Information Schema
:
DENY SELECT ON INFORMATION_SCHEMA.TABLES To DenySystemTableSelectRole
এটি কাজ করে না বলে মনে হচ্ছে।
আমি কীভাবে তথ্য_সেমায় অ্যাক্সেস অক্ষম করতে পারি?
এবং কোনও সহজ উপায় কি সমস্ত sys
/ এ অ্যাক্সেস অক্ষম করতে হবে information_schema
?
আপডেট: আসলে আমি নিম্নলিখিত বিবৃতি দুটিই চালাতে পারি না:
DENY SELECT ON [sys] TO reducedDBO
GO
DENY SELECT ON INFORMATION_SCHEMA To reducedDBO
GO
আমি তাদের নির্দিষ্ট ডিবিতে চালানোর চেষ্টা করেছি যেখানে ব্যবহারকারীর উপস্থিতি রয়েছে এবং আমি "মাস্টার" এর উপরও চেষ্টা করেছি।
আমি এখনও চালাতে পারি:
SELECT * from
INFORMATION_SCHEMA.TABLES
-> এখনও ফলাফল দেয়
SELECT * from
sys.TABLES
-> কোনও ফলাফল নেই
SCHEMA::
ক্যোয়ারী সহ সিকিউরিবলগুলি তৈরি করা সম্ভব করেছে
DENY SELECT ON SCHEMA::[sys] TO reducedDBO
GO
DENY SELECT ON SCHEMA::INFORMATION_SCHEMA To reducedDBO
GO
তবে এখন আমি ডিবি থেকে সমস্ত তথ্য নির্বাচন করতে পারি।
ম্যানেজমেন্ট স্টুডিও ২০০৮-এর ব্যবহারকারীদের সম্পত্তি-উইন্ডোতে আমি "সিকিউরিবলস" -ট্যাব একবার দেখেছিলাম, এটি দেখতে এটির মতো দেখাচ্ছে:
Sys.tables এর selecion অবরুদ্ধ করে এমন এন্ট্রি
স্কিমা: সিএস, নাম: সারণী, প্রকার: দেখুন
Sys.tables এর জন্য অনুমতি: অনুমতি: নির্বাচন করুন, অনুদানকারী: dbo, অস্বীকার চেক করা হয়েছে
কোনও নির্বাচন বাধা দেয় না এমন এন্ট্রি
স্কিমা:, নাম: INFORMATION_SCHEMA, প্রকার: স্কিমা
INFORMATION_SCHEMA এর জন্য অনুমতি: অনুমতি: নির্বাচন করুন, অনুদানকারী: ডিবিও, অস্বীকৃত নয় যাচাই করা হয়নি (আমি এটি পরীক্ষা করার চেষ্টা করেছি, তবে কোনও সুযোগ নেই ..)
অনুমতি: নির্বাচন করুন, অনুদানকারী: INFORMATION_SCHEMA, অস্বীকৃতি চেক করা হয়েছে
আমি জিইউআইয়ের উপর অনুমতিগুলি সেট করার চেষ্টা করেছি, তবে তারপরে আমি একই ত্রুটি পেয়েছি যে অনুমতিগুলি নির্ধারণ করা কেবলমাত্র মাস্টার ডিবিতেই সম্ভব হবে। তবে আমার কাছে মাস্টার ডিবিএস সুরক্ষায় ব্যবহারকারী / লগইন যুক্ত হয়নি।
সমাধান:
আমি কেবলমাত্র উপায়টির জন্য deny
কাজটি করতে পারি তা information_schema
হ'ল ব্যবহারকারীকে মাস্টার-ডিবিতে যুক্ত করা এবং মাস্টারটি চালানো deny select
:
DENY SELECT ON [sys].[tables] TO reducedDBO
GO
DENY SELECT ON INFORMATION_SCHEMA.TABLES To reducedDBO
GO
এবং এই কোড হিসাবে, এটি কেবল একক টেবিলের জন্যই কার্যকর করা যেতে পারে।