সাধারণ ব্যবহারকারীদের মঞ্জুরি দেওয়ার জন্য যুক্তিসঙ্গত সুযোগ-সুবিধা কী কী? [বন্ধ]


13

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

  1. root
  2. developer
  3. application

rootস্ব বর্ণনামূলক। জন্য developerএই ব্যবহারকারীর চাহিদা সহজে, ইত্যাদি নতুনদের আমি এই বিশেষাধিকার সেটে এই ব্যবহারকারীর সেটিং করছি জন্য এটি কোনো ডাটাবেস, করতে সমন্বয় অ্যাক্সেস করতে সক্ষম হবেন না:

SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER ON

applicationএকটি আরও সীমিত সেট আছে। এটি কেবলমাত্র একটি নির্দিষ্ট ডাটাবেস ম্যানিপুলেট করার মধ্যে সীমাবদ্ধ হওয়া উচিত।

আমি নিশ্চিত নই যে যুক্তিসঙ্গত সুযোগ-সুবিধার সেট কী মঞ্জুরি দেয়। কোনও বিকাশকারী এবং একটি অ্যাপ্লিকেশন মঞ্জুর করার জন্য যুক্তিসঙ্গত সুযোগ-সুবিধাগুলি কী কী এবং কেন?


যাক, উদাহরণস্বরূপ, সমস্ত অ্যাপ্লিকেশনগুলি ওয়ার্ডপ্রেস মোতায়েন। আমি জানি যে আপনি নিজেই ওয়ার্ডপ্রেস থেকে ডিবি পরিচালনা করতে পারেন, তবে কখনও কখনও সার্ভারে নিজেই ঝাঁপিয়ে পড়ার দরকার পড়ে। বিকাশকারীকে সহজেই ডাটাবেস থেকে ডাটাবেসে স্যুইচ করতে সক্ষম হওয়া উচিত ...
অ্যাভারি

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

উত্তর:


13

একটি সাধারণ ব্যবহারকারীর উচিত:

SELECT, INSERT, DELETE, UPDATE, CREATE TEMPORARY TABLES, EXECUTE

প্রথম চারটি বেশ সুস্পষ্ট - যদিও আপনি কেবলমাত্র "কেবল পঠনযোগ্য" ব্যবহারকারীদের সেট আপ করতে পারেন SELECT

CREATE TEMPORARYএছাড়াও সহজ এবং সাধারণত নিরীহ: অস্থায়ী টেবিলগুলি কোয়েরিগুলিকে অনুকূল করে তুলতে, এগুলিকে ছোট ও দ্রুততর অংশে ভাঙ্গতে সহায়তা করতে পারে। এগুলি সম্পাদনকারী সংযোগের মধ্যে সীমাবদ্ধ এবং এটি বন্ধ হয়ে গেলে স্বয়ংক্রিয়ভাবে বাদ দেওয়া হয়।

EXECUTEআপনার সিস্টেমের ধরণের উপর নির্ভর করে। আপনার কি রুটিন রয়েছে? আপনি কি আপনার ব্যবহারকারীদের এগুলি অ্যাক্সেস করতে চান? SECURITY=DEFINER/INVOKERসঞ্চিত রুটিনগুলির সংজ্ঞা সম্পর্কে আপনিও জানেন কিনা তা নিশ্চিত করুন ।

যে কোনও ক্ষেত্রে, উপরোক্ত সমস্ত নির্দিষ্ট স্কিমায় প্রয়োগ করতে ভুলবেন না । ব্যবহার এড়িয়ে চলুন :

GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO 'some_user'@'some_host';

উপরেরগুলি যেমন mysqlসিস্টেম টেবিলগুলিতে সুবিধা দেয়, কার্যকরভাবে কোনও ব্যবহারকারীর নতুন অ্যাকাউন্ট তৈরি করতে বা তাদের নিজস্ব সুবিধার সেট আপগ্রেড করতে দেয়। পরিবর্তে, করুন:

GRANT SELECT, INSERT, UPDATE, DELETE ON some_schema.* TO 'some_user'@'some_host';
GRANT SELECT, INSERT, UPDATE, DELETE ON another_schema.* TO 'some_user'@'some_host';

1
মারিয়াডিবিতে, পরিবর্তে তৈরি করুন টেবিলগুলি ব্যবহার করুন। এখানে ডেটাবেস সুবিধাগুলি
অ্যাডল্ফোবেগg

4

যে কোনও বাস্তব স্কেল সিস্টেমে (অর্থাত্ কোনও ব্যক্তিগত প্রকল্প নয়) সেই ব্যবহারকারীর প্রকারগুলি পরিবেশ অনুসারে পরিবর্তিত হয় তাই এটি এতটা সহজ নয়।

সমস্ত পরিবেশে অ্যাপ্লিকেশনটির যা প্রয়োজন তা থাকা উচিত এবং এর চেয়ে বেশি কিছু নেই (সাধারণত এটি "সমস্ত টেবিলের উপরে নির্বাচন / সন্নিবেশ / আপডেট" এবং "সমস্ত পদ্ধতিতে এক্সিকিউটিভ" থাকে) বৃহত্তর সিস্টেমে যেখানে আপনার পৃথক কাজের জন্য পৃথক অ্যাপ্লিকেশন ব্যবহারকারী থাকতে পারে (জন্য উদাহরণস্বরূপ একটি অ্যাপ্লিকেশন সেন্সর ডেটা খাওয়ানোর জন্য এবং অন্যটি প্রতিবেদন উত্পন্ন করার জন্য দায়ী you আপনার তাদের সুবিধাগুলি আলাদা করা উচিত যাতে তাদের কমপক্ষে প্রয়োজন হয় (রিপোর্টিং ব্যবহারকারীর সম্ভবত প্রয়োজন নেই এবং অধিকার লেখার প্রয়োজন নেই) sure নিশ্চিত করুন যে আপনি এটি আপনার পরীক্ষায় প্রতিলিপি করেছেন পরিবেশগুলি যদি সেগুলি থাকে: আমি লাইভে প্রচারিত হওয়ার সময় কোডটি পড়ে যেতে দেখেছি যা পরীক্ষায় কাজ করেছে কারণ পরীক্ষার পরিবেশের সমস্ত কিছুই ডিবিতে sa(এমএসএসকিউএল এর সমতুল্য root) অ্যাক্সেস করছিল ।আদর্শভাবে কোনও অ্যাপ্লিকেশন ব্যবহারকারীর সাধারণত কোনও সুযোগ-সুবিধা থাকা উচিত যা এটি আপনার স্কিমা পরিবর্তন করতে দেয় (CREATE,, DROP...) - এর ব্যতিক্রম আছে তবে সেগুলি খুব কম এবং এর মধ্যে রয়েছে।

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

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

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

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