আমার একটি নির্দিষ্ট ব্যবহারকারীর অ্যাক্সেস সীমাবদ্ধ করা দরকার, তবে তাদের ডিবিওর মালিকানাযুক্ত টেবিলগুলিতে ডেটা দেখতে সক্ষম হওয়া দরকার।
আমি নিম্নলিখিতটি করার চেষ্টা করছি:
- ডিবিও স্কিমা ফাংশন যেমন এটি সাধারণত হয়, সমস্ত কিছুর অ্যাক্সেস রয়েছে
- স্কিমা 1 স্কিমাটিতে কেবল স্কিমা 1 অবজেক্টে অ্যাক্সেস রয়েছে
- যদি কোনও স্কিমা 1 দেখুন বা সঞ্চিত পদ্ধতিটি ডিবিও-র মালিকানাযুক্ত টেবিলগুলিতে ডেটা অ্যাক্সেস করে, অনুমতিগুলি যথাযথভাবে শৃঙ্খলাবদ্ধ করে
- ইউজার 1 এর স্কিমা 1 এ অ্যাক্সেস রয়েছে এবং অন্য কিছুই নেই; # 3 এর ক্ষেত্রে বাদে
এখানে আমি চেষ্টা করেছি:
- এলোমেলো পাসওয়ার্ড সহ পরীক্ষার লগইনে ম্যাপযুক্ত একজন ব্যবহারকারী 1 তৈরি করুন
- এর মধ্যে কয়েকটি পরীক্ষার ডেটা দিয়ে ডিবিও স্কিমে কয়েকটি টেবিল তৈরি করেছে
- একটি স্কিমা 1 স্কিমা তৈরি করেছে
- একটি স্কিমা 1.get_ প্রোফাইলে তৈরি করেছে যা স্কিমা 1.প্রফাইল নামে পরিচিত একটি ভিউ থেকে নির্বাচন করে যা dbo.people, dbo.taglinks এবং dbo.tags এ ডেটা অ্যাক্সেস করে
তবে, ব্যবহারকারী 1 হিসাবে লগ ইন করার সময় নিম্নলিখিত বিবৃতিটি ব্যবহার করে:
EXEC get_profiles 1
ফলাফল স্বরূপ:
The SELECT permission was denied on the object 'tags', database 'schema_test', schema 'dbo'.
আমি চেষ্টা করেছি WITH EXECUTE AS OWNER
এবং বুঝতে পারি না যে "মালিকানা চেইন" কীভাবে কাজ করবে।
আমি চেষ্টাও করেছি
GRANT EXECUTE ON SCHEMA::schema1 TO user1
GRANT INSERT ON SCHEMA::schema1 TO user1
GRANT SELECT ON SCHEMA::schema1 TO user1
GRANT UPDATE ON SCHEMA::schema1 TO user1
GRANT VIEW DEFINITION ON SCHEMA::schema1 TO user1
তবে আমি নিম্নলিখিত ত্রুটিটি পেয়েছি (ডিবিও-স্তরের অ্যাক্সেস সহ ব্যবহারকারী হয়েও):
Cannot grant, deny, or revoke permissions to sa, dbo, entity owner, information_schema, sys, or yourself.
আমার যেটি দরকার তা হ'ল ইউজার 1 আমি যে স্টোর দিয়ে থাকি সেগুলি দিয়ে ডেটা অ্যাক্সেস করতে সক্ষম হওয়া এবং অন্য কিছুই নয়।
অতিরিক্তভাবে, এটি অবশেষে বিদ্যমান এসকিউএল অ্যাজুরি ডাটাবেসে লাইভ করার উদ্দেশ্যে তৈরি করা হয়েছে তবে আমি প্রথমে স্থানীয় ডামি ডাটাবেসের বিরুদ্ধে পরীক্ষা করছি।