বাস্তবে, এই তিনটি ব্যবহারকারীর অ্যাকাউন্টগুলি আসলে বেশ বিপজ্জনক। তারা ডাটাবেস পরীক্ষার জন্য একটি খুব বড় হুমকি।
দুর্ভাগ্যক্রমে, mysql পরীক্ষার ডাটাবেসে সম্পূর্ণ অ্যাক্সেসের সাথে আসে। আপনি কিভাবে এটি খুঁজে পেতে পারেন?
এই কোয়েরিটি চালান:
SELECT user,host,db from mysql.db;
মাইএসকিএল ইনস্টল করার পরে, আপনি দুটি সারি দেখতে পাবেন যা 'টেস্ট' নামক কোনও ডাটাবেসে সম্পূর্ণ অ্যাক্সেস দেয় বা যাদের প্রথম 5 টি অক্ষর 'টেস্ট_' হয়।
কেন এটি একটি সমস্যা ???
এই আদেশটি চালানোর চেষ্টা করুন:
$ mysql -u'' -Dtest
আপনি পাসওয়ার্ড ছাড়াই পরীক্ষার ডাটাবেসটি সংযুক্ত করে ফেলবেন।
এখন, একটি সারণী তৈরি করুন এবং এটি একটি সারিতে লোড করুন:
CREATE TABLE mytable (a int);
INSERT INTO mytable VALUES (1);
ঠিক আছে, বড় ব্যাপার। আপনি এই টেবিলটি 30 বার আকারে দ্বিগুণ করতে পারবেন ???
INSERT INTO mytable SELECT * FROM mytable;
INSERT INTO mytable SELECT * FROM mytable;
... (30 times)
INSERT INTO mytable SELECT * FROM mytable;
তুমি কি পেলে ?? 1,073,741,824 সারি সহ একটি সারণী। সহজেই, 4 জিবি +
যে কোনও আকারের যেকোন টেবিল তৈরি করার কল্পনা করুন। পরীক্ষার ডাটাবেসে একগুচ্ছ সারণী তৈরি এবং ইচ্ছামত অবাধে অ্যাক্সেস সম্পর্কে কীভাবে?
এই পরিস্থিতিতে আপনি যে সর্বোত্তম কাজটি করতে পারেন তা হল এই কোয়েরিটি চালানো:
DELETE FROM mysql.db;
এবং mysql পুনরায় আরম্ভ করুন। তারপরে, এই তিনটি অ্যাকাউন্ট যথাযথভাবে নিষ্ক্রিয় করা হবে।
একবার চেষ্টা করে দেখো !!!
আপডেট ২০১১-০৯-২০১২ 10:00 ইডিটি
এটি মুছুন:
DELETE FROM mysql.db;
FLUSH PRIVILEGES;
আপনার প্রাথমিক ইনস্টলেশনের জন্য যা প্রয়োজন তা হ'ল। তবে আপনার যদি ইতিমধ্যে ব্যবহারকারীরা প্রতিষ্ঠিত থাকে তবে আপনি এটির পরিবর্তে এটি চালাতে পারেন:
DELETE FROM mysql.db WHERE db IN ('test','test_%');
FLUSH PRIVILEGES;
এটি নির্দিষ্ট দুটি ডিবি অনুমতিগুলি সরিয়ে ফেলবে।
আমি আমার উত্তরে যেমন উল্লেখ করেছি, তিনটি অনুমতি পরীক্ষা ডাটাবেসের জন্য অত্যন্ত বিপজ্জনক। এই ডিলিটিটি চালানো ডেটাবেসগুলির সম্পূর্ণ অধিকার থাকার জন্য সেই অ্যাকাউন্টগুলিকে নিরপেক্ষ করে তুলবে।