মাইএসকিউএল স্লেভকে অ-প্রতিলিপি লেখার প্রতিরোধ করবেন?


13

পারফরম্যান্সের জন্য আমাদের কাছে কিছু মাইএসকিউএল ডাটাবেস সার্ভার রয়েছে যা সারি-ভিত্তিক প্রতিলিপি দিয়ে তৈরি করা হয়েছে। সফ্টওয়্যারটি মাস্টারের কাছে লিখিত, এবং মাস্টার বা দাসের কাছ থেকে পড়ে। বেশিরভাগ অংশই সবকিছু দুর্দান্ত কাজ করছে।

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

মাইএসকিউএলে এটি করার কোনও উপায় আছে কি? স্পষ্টতই আমরা আমাদের সফ্টওয়্যার থেকে এটি অসম্ভব করে তুলতে চাই, তবে আমাদের সার্ভারগুলিতে ফায়ারওয়ালের মতো, আমি যথাসম্ভব প্রতিরক্ষামূলক হতে চাই।

ধন্যবাদ!

উত্তর:


13

My.cnf এ read-onlyবিকল্পটি সক্ষম করুন । এটি --read-onlymysqld ব্যবহার করে কমান্ড লাইনে একটি পতাকা হিসাবেও নির্দিষ্ট করা যেতে পারে ।


5
মনে রাখবেন যে এটি সুপারউসারদের (যেমন: মাইএসকিউএল রুট ব্যবহারকারী) এর জন্য কাজ করবে না কারণ এটি কেবল পঠন-পাঠ্য মানায় না।
vmfarms

5

সেটিংয়ের বিকল্প হিসাবে read_only=1(যেমন দাস দৃষ্টান্তে অন্যান্য স্ক্র্যাচপ্যাড / রিপোর্টিং / ডেভেলপমেন্ট ডেটাবেসগুলি থাকে), আমি মাঝে মাঝে সমস্ত ব্যবহারকারীদের ডিবিতে SELECT ব্যতীত সমস্ত সুযোগ-সুবিধাগুলি ছিনিয়ে নিই যা আমি প্রতিলিপি করছি।

এটি হ'ল মাস্টারের উপর GRANT কমান্ড চালানোর পরে , আমি স্লেভের উপর REVOKE কমান্ডটি চালাচ্ছি


2

এর মতো মাইএসকিউএল 5.7.8 , সেখানে এখন একটি হল super_read_onlyবিকল্প, যা ক্লায়েন্ট আপডেট করা থেকে এমনকি সুপার আটকায়। এটি প্রতিরূপ প্রক্রিয়া ব্যাহত করে না। অন্যান্য সেটিংসের মতো এটিও সেট করা যেতে পারে:

  • কমান্ড লাইন বিন্যাসে ( --super_read_only=ON),
  • my.cnf ( super_read_only=1) এর ভেরিয়েবল হিসাবে বা or
  • ক্লায়েন্ট প্রম্পট থেকে ( SET GLOBAL super_read_only = 1;)।

মনে রাখবেন যে:

  • সক্ষম করা হলে তা super_read_onlyপরোক্ষভাবে সম্ভবread_only
  • অক্ষম করা হচ্ছে read_onlyপরোক্ষভাবে অক্ষমsuper_read_only

কিছু সতর্কতা:

  • অস্থায়ী টেবিলগুলিতে অপারেশনকে আটকাবে না read_onlyবা super_read_onlyআটকাবে না ।
  • তারা বিশ্লেষণ টেবিল এবং অপ্টিমাইজ টেবিলের মতো মেটাডেটা অপারেশনগুলি আটকাবে না।
  • সক্ষমযুক্ত কিছু প্রশ্নের জন্য বাগগুলি super_read_onlyপ্রতিবেদন করা হয়েছে।

তথ্যসূত্র: https://www.percona.com/blog/2016/09/27/ using-the-super_read_only-sstm- variable/


1

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


0

কেবল ক্রীতদাসের ব্যবহারকারীদের প্রতিরূপ সম্পর্কিত অধিকার দিন give আপনার কাছে এখনও মূল ব্যবহারকারী অধিকারের বিষয়টি রয়েছে তবে আপনি ডিবি সার্ভারের রিমোট রুট অ্যাক্সেস সরিয়ে ফেলতে পারেন।

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