সঞ্চিত পদ্ধতি কার্যকর করার অনুমতি দিবেন কিন্তু লেখেন না?


11

আমি আমার এসকিউএল সার্ভার 2012 উদাহরণে একটি "পঠন" ব্যবহারকারী সেট আপ করতে চাই। আমি তাকে কোনও সঞ্চিত প্রক্রিয়া, বা ফাংশন, বা সরাসরি এসকিউএল স্টেটমেন্ট কার্যকর করার অধিকারকে অনুমতি দিতে চাই, যা সমস্ত সারণী এবং ভিউগুলি থেকে ডেটা উদ্ধার করে, তবে আপডেট বা সন্নিবেশ না করায় (অর্থাত্ কিছু পড়তে এবং কিছুই লিখেনি)।

আমি প্রতিটি ফাংশন বা নাম দ্বারা সঞ্চিত পদ্ধতিতে বিশেষত অধিকার না দিয়ে এটিকে সেট আপ করতে পারি, তবে কেবল কোনও টেবিলগুলি সংশোধন করার অধিকার কেড়ে নিয়ে কোনও ফাংশন বা সঞ্চিত পদ্ধতিতে তাকে মৃত্যুদণ্ড কার্যকর করতে পারি?

আমি পরিবর্তে এসকিউএল সার্ভার ২০০ চালিয়ে দিলে কি কিছু পরিবর্তন হবে?

স্পষ্টতা এবং সংযোজন:

  1. যদি কোনও সঞ্চিত পদ্ধতিতে ডেটা পরিবর্তন হয় তবে ব্যবহারকারীর একটি ত্রুটি বার্তা গ্রহণ করা উচিত (হয় পরিবর্তনকে অস্বীকার করা বা সঞ্চিত পদ্ধতিতে সম্পূর্ণরূপে অ্যাক্সেস প্রত্যাখ্যান)।
  2. যদি কোনও সম্ভাব্য সমাধানে অনুমতি অস্বীকারের সাথে জড়িত থাকে তবে আমি কি অস্বীকার করার পরিবর্তে কিছু অনুমতি দিতে পারি না?
  3. একটি বিবৃতিতে ডাটাবেসে সমস্ত টেবিল, ভিউ ইত্যাদিতে (বর্তমানে এবং ভবিষ্যতে বিদ্যমান) অস্বীকৃতি প্রয়োগ করা যেতে পারে?

আমি এখানে নতুন, দয়া করে ট্যাগগুলি যথাযথ হিসাবে নির্ধারণ করুন এবং অন্যথায় প্রশ্ন সম্পাদনা করতে
নির্দ্বিধায়

1
@ ক্রিসগ্রুটমিয়ার এই চিন্তাভাবনা করেছিলেন - তিনি এটিকে কার্যকর করতে পারেন তবে এর ফলে কোনওরকম ত্রুটি ঘটবে; বিকল্পভাবে আমি ঠিক আছি তার সাথে এটি
সম্পাদন

1
সেক্ষেত্রে আপনাকে এসকিউএল সার্ভারের অনুমতি সম্পর্কে পড়তে হবে। 3 টি অনুমতি ভেরিয়েন্ট রয়েছে - GRANTঅনুমতি দেওয়া, DENYঅনুমতি অস্বীকার করা এবং REVOKEএকটি GRANTবা অপসারণের জন্য DENY। কোনও GRANTবা DENYব্যবহারকারী অনুমতি ছাড়াই উত্তরাধিকার সূত্রে প্রাপ্ত হতে পারে, কোনও সঞ্চিত পদ্ধতিতে অ্যাক্সেস পাওয়া থেকে বলুন।
জেএনকে

1
@ gt6989b আপনি যদি DENY DELETE, INSERT, UPDATEকোনও ডাটাবেস বা স্কিমাতে থাকেন তবে আমি বিশ্বাস করি এটি কেবল সারণী এবং দর্শনগুলিকেই প্রভাবিত করবে।
জেএনকে

1
@ gt6989b - এই মন্তব্যগুলিতে প্রস্তাবিত উত্তরটি ভুল বলে প্রমাণিত হয়েছে Just পল হোয়াইট এর প্রতিক্রিয়া দেখুন।
আরএলএফ

উত্তর:


15

এটি আপনি যতটা ভাবেন তেমন অর্জন করা সহজ নয়। একটি উপায় হ'ল একটি নতুন ব্যবহারকারী-সংজ্ঞায়িত ডাটাবেস ভূমিকা তৈরি করা, সেই ভূমিকার জন্য প্রয়োজনীয় সমস্ত অনুমতি দেওয়া, তারপরে ব্যবহারকারীদের নতুন ভূমিকাতে যুক্ত করা। এটি কমপক্ষে ভবিষ্যতে ব্যবহারকারীদের (বা অন্যান্য ব্যবহারকারী সংজ্ঞায়িত ভূমিকা) অনুমতিগুলির এই সেটটি প্রদান করা আরও সহজ করে তোলে। নিম্নলিখিত পদক্ষেপগুলি একটি ভাল শুরু:

-- The user-defined role containing all required permissions
CREATE ROLE Readers AUTHORIZATION dbo;

-- Give read-only access to all tables,
-- views on those tables, and in-line
-- functions
ALTER ROLE db_datareader ADD MEMBER Readers;

-- Example: add a user (Bob) to the role
ALTER ROLE Readers ADD MEMBER Bob;

এর পরে, বব এর ডেটাবেসে বিস্তৃত পঠনযোগ্য সুযোগ-সুবিধা পাবেন। তিনি সমস্ত টেবিল, সেই টেবিলের উপর দৃষ্টিভঙ্গি এবং ইন-লাইন কার্যগুলি থেকে পড়তে সক্ষম হবেন। তবে তিনি কোনও পদ্ধতি কার্যকর করতে বা অন-ইনলাইন ফাংশনগুলি ব্যবহার করতে সক্ষম হবেন না।

আপনি পাঠকদের অ্যাক্সেস রাখতে চান এমন নিরাপদ ফাংশন এবং পদ্ধতিগুলির জন্য আপনাকে পাঠকদের ভূমিকার জন্য নির্দিষ্ট অনুমতি প্রদান করতে হবে। এই প্রক্রিয়াটিকে আরও সহজ করার জন্য আপনি নিতে পারেন এমন পদক্ষেপগুলি থাকতে পারে (যেমন কোনও স্কেমে অবজেক্টগুলিকে গ্রুপিং করা এবং স্বতন্ত্র সামগ্রীর পরিবর্তে স্কিমাতে অনুমতি প্রদানের অনুমতি দেওয়া) তবে এখানে অনেকগুলি বিবরণ রয়েছে।

একটি বিষয় সচেতন হতে হবে তা হল যে ডেটা পরিবর্তনের সুযোগ-সুবিধার অভাব কোনও পাঠককে কোনও স্টোরেজ পদ্ধতিতে ডেটা পরিবর্তন করা থেকে বিরত রাখতে পারে না, যদি পদ্ধতি এবং অবজেক্টটি কোনও সাধারণ মালিককে ভাগ করে নেওয়া হয় তবে তার উপর মৃত্যুদন্ড কার্যকর করার অনুমতি দেওয়া হয়েছে। এই ক্ষেত্রে কোনও স্পষ্টভাবে অস্বীকারও করা হবে না। এই বৈশিষ্ট্যটি ওনারশিপ চেইনিং নামে পরিচিত ।

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