ব্যবহারকারীর নিজের স্কিমার মধ্যে কিছু করার অনুমতি দিন তবে নিজেই স্কিমা তৈরি বা ছাড়বেন না


12

আমি এসকিউএল অ্যাজুরে একটি স্কিমা তৈরি করেছি এবং ডাটাবেস ভূমিকার জন্য নিম্নলিখিত অনুমতিগুলি দিয়েছি:

CREATE ROLE myrole AUTHORIZATION dbo;
EXEC sp_addrolemember 'myrole', 'myuser';

CREATE SCHEMA myschema AUTHORIZATION dbo;

GRANT ALTER, CONTROL, DELETE, EXECUTE, INSERT, REFERENCES, SELECT, UPDATE, VIEW 
DEFINITION ON SCHEMA::myschema TO myrole;

GRANT CREATE TABLE, CREATE PROCEDURE, CREATE FUNCTION, CREATE VIEW TO myrole;

উপরোক্ত সংজ্ঞায়িত অনুমতিগুলির মাধ্যমে myuserতার নিজস্ব স্কিমা তৈরি / ড্রপ করতে পারে, সুতরাং সমস্যাটি কাটিয়ে উঠতে আমি যেকোনও স্কিমার অনুমতি দিয়ে চেষ্টা করেছি। তবে এই অনুমতিটি ব্যবহারকারীকে টেবিলগুলি তৈরি / ড্রপ করতে অস্বীকার করে।

ব্যবহারকারীকে তার নিজস্ব স্কিমার মধ্যে কিছু করার অনুমতি দেওয়ার জন্য, কিন্তু স্কিমাটি নিজে তৈরি করতে বা ড্রপ করতে সক্ষম না হওয়ার জন্য কী অনুমতিগুলির প্রয়োজন?

উত্তর:


8

CONTROLস্কিমাতে অনুদান দেওয়ার দরকার নেই ।
প্রয়োজনীয় অনুমতিটি DROP SCHEMAহয় CONTROLস্কিমাতে বা ALTER ANY SCHEMAডাটাবেস পর্যায়ে এবং সেইজন্য আপনার ব্যবহারকারী স্কিমাটি ফেলে দিতে সক্ষম হন। এই দুটি অনুমতি মুছে ফেলা ভূমিকা-সম্পর্কিত ব্যবহারকারীদের স্কিমা তৈরি এবং ফেলে দেওয়া থেকে বিরত রাখবে (যদি না তাদের উচ্চ স্তরের অনুমতি থাকে তবে)।

স্কিমার অনুমতি সহ মিলিত বস্তুর ধরণের (টেবিল \ পদ্ধতি \ ফাংশন \ দর্শন) জন্য প্রয়োজনীয় অনুমতি CREATE ALTERএবং DROPঅন্যান্য অবজেক্টের প্রয়োজনীয় অনুমতি । আপনার স্ক্রিপ্টে ইতিমধ্যে আপনার এই অনুমতিগুলি রয়েছে, সুতরাং আপনাকে যা করতে হবে তা হ'ল অনুমতি সরানো । রেফারেন্সের জন্য, এখানে বিবৃতিগুলির একটি বিওএল তালিকা রয়েছে যেখানে আপনি সমস্ত অবজেক্টের ধরণের জন্য প্রয়োজনীয় অনুমতি পেতে পারেন। CREATEALTER
CONTROLDDL

অলসতার জন্য, অপ্রয়োজনীয় অনুমতি অপসারণের পরে আপনার কোডটি এখানে:

CREATE ROLE myrole AUTHORIZATION dbo;
EXEC sp_addrolemember 'myrole', 'myuser';

CREATE SCHEMA myschema AUTHORIZATION dbo;

GRANT ALTER, DELETE, EXECUTE, INSERT, REFERENCES, SELECT,
          UPDATE, VIEW DEFINITION ON SCHEMA::myschema TO myrole;

GRANT CREATE TABLE, CREATE PROCEDURE, CREATE FUNCTION, CREATE VIEW TO myrole;

কিন্তু ব্যবহারকারী অন্যান্য স্কিমার আওতায়ও বস্তু তৈরি করতে সক্ষম হবেন?
u23432534

4

নোট করুন যেহেতু নতুন স্কিমাতে "ডিবিও" এর অনুমোদন রয়েছে, ব্যবহারকারী অপ্রত্যক্ষভাবে সমস্ত ডেটাবেজ অবজেক্টগুলিতে অ্যাক্সেস করতে সক্ষম হবেন যেখানে স্কোমাটি ডিবিওর মালিকানাধীন।

উদাহরণ:

select * from dbo.test; --fails

create view myschema.test
as 
select * 
from dbo.test; --view is created

select * from myschema.test;  --contents of dbo.test now revealed.

এটি এসকিউএল সার্ভার ইঞ্জিনের সঠিক অপারেশন; অনুমতিগুলি একই অনুমোদনের সাথে অন্যান্য স্কিমায় প্রবেশ করে। যেমন অ্যাক্সেস সীমাবদ্ধ করতে, এখানে স্কিমা তৈরির জন্য একটি বিকল্প রয়েছে:

CREATE SCHEMA myschema AUTHORIZATION myrole;

এটি একটি খুব ভাল বিষয় - স্কিমার মালিক ব্যবহারকারীর যে অনুমতি রয়েছে তার পক্ষে গুরুত্বপূর্ণ is
কস্টা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.