Mysql.user থেকে বেনামে ব্যবহারকারীকে ফেলে দেওয়া যায় না


15

আমি আমার mysql.users ডাটাবেস থেকে বেনামে ব্যবহারকারীদের DROP করার চেষ্টা করছি। তবে, আমি অদ্ভুত আচরণ পেয়ে চলেছি। আমি যখন আদেশটি প্রবেশ করি:

DROP User ''@'WOPR';

আমি একটি জেনেরিক ত্রুটি বার্তা পাচ্ছিলাম। সুতরাং, আমি আমার মেশিনটি পুনরায় বুট করেছি এবং আবার চেষ্টা করেছি tried এবার আমি সাড়া পেয়েছি

Query OK, 0 rows affected.

তবে আমি যখন .ুকি

SELECT User, Host, Password FROM mysql.user WHERE User='';

রিটার্নটি হ'ল:

+------+------+----------+
| User | Host | Password |
+------+------+----------+
|      | WOPR |          |
+------+------+----------+

(ডাব্লুওপিআর আমার হোস্টনাম)

আমি কমান্ড চালাচ্ছি

DROP User ''@'WOPR';

এবং একই ফলাফল পেতে।

আমি আর্চ লিনাক্স, কার্নেল সংস্করণ ২.6.৩৩ এ মাইএসকিউএল ৫.৫ এর একটি নতুন ইনস্টল চালাচ্ছি।

কেউ কি জানেন যে এই আচরণের কারণ কী হতে পারে?


এই প্রকৃতির প্রশ্নগুলি ডিবিএ স্ট্যাকএক্সচেঞ্জে প্রেরণ করার জন্য দয়া করে শব্দটিটি প্রকাশ করুন !!!
রোল্যান্ডোমাইএসকিউএলডিবিএ

উত্তর:


15
DELETE FROM mysql.user WHERE user='' AND host='WOPR';
FLUSH PRIVILEGES;

এটি আপনার জন্য এটি করা উচিত।

একবার চেষ্টা করে দেখো !!!

বিচারকার্য স্থগিত রাখার আদেশ

মাইএসকিউএল-র নির্দিষ্ট ব্যবহারকারীরা মাইএসকিএল.ইউসার-এ ইনস্টল করা আছে। এছাড়াও, মাইএসকিএল.ডিবি এমন দু'জন ব্যবহারকারীর সাথে আসে যাদের বেনামে প্রবেশাধিকার এবং ডাটাবেসগুলি পরীক্ষা করার সম্পূর্ণ সুযোগ সুবিধা রয়েছে।

শুধু এই কাজ

SELECT * FROM mysql.db \G

এবং আপনি দেখতে পাবেন যে যে কেউ টেস্টের সাথে সংযুক্ত হয় বা টেস্ট_ দিয়ে শুরু হওয়া যে কোনও ডাটাবেস পরীক্ষার ডাটাবেজে সবকিছু করতে পারে। এটি খারাপ কারণ যে কোনও পরীক্ষার ডাটাবেসে সম্পূর্ণ অ্যাক্সেস পাওয়া ব্যক্তি কয়েক মিনিটের ব্যবধানে একটি ডিস্ক খেতে পারেন।

উদাহরণ:

use test
CREATE TABLE junk (INT a) ENGINE=MyISAM;
INSERT INTO junk VALUES (1);

ঠিক আছে, বড় ব্যাপার। এটি 4 বাইট সহ একটি টেবিল তৈরি করে।

এখন এই এসকিউএল স্টেটমেন্টটি 30 বার চালানোর চেষ্টা করুন:

INSERT INTO junk SELECT * FROM junk;

আরে 1,073,741,824 সারি (4 জিবি + ফাইল) সহ একটি তাত্ক্ষণিক টেবিল !!! আপনি কোনও ডিস্কে এই ধরণের ধ্বংসযজ্ঞ চালাতে পারেন এমন কোনও পরীক্ষামূলক ডাটাবেসের পুরো অধিকার থাকার চিত্র রয়েছে।

আপনাকে আমার পরামর্শ হ'ল পরীক্ষার ব্যবহারকারীর অ্যাক্সেস সাফ করার জন্য এটি চালানো:

DELETE FROM mysql.db WHERE db LIKE 'tes%' AND user='';
FLUSH PRIVILEGES;

আরও স্পষ্টতার জন্য, আমার পোস্টটি মাইএসকিউএল দেখুন: মাইএসকিএল.ডিবিতে কেন "পরীক্ষা" প্রবেশিকা রয়েছে?

চিয়ার্স !!!


হাই রোল্যান্ডো, কৌতুকটি করেছে, ধন্যবাদ! আমি এখনই আমার পরীক্ষার ডাটাবেস অ্যাক্সেসটি ঠিক করছি।
স্যারটিস্টি

drop userঅন্তর্নিহিত mysql.userটেবিলটি সরাসরি সংশোধন করার পরিবর্তে বাক্য গঠন ব্যবহার করার কোনও উপায় নেই ?
পেসারিয়ার

1
@ পেসারিয়ার দয়া করে মূল প্রশ্নটি দেখুন। আসল সমস্যাটি হ'ল DROP USERযখন ব্যবহারকারী ক্ষেত্রটি ফাঁকা (ফাঁকা স্ট্রিং) থাকে তখন বাক্য গঠন কাজ করে না। উত্তরটি নির্দিষ্ট করে আপনাকে অবশ্যই এটি করতে হবে।
রোল্যান্ডোমাইএসকিউএলডিবিএ

@ রোল্যান্ডোমাইএসকিউএলডিবিএ, mysql.userটেবিলের চারপাশে হ্যাকিং ছাড়াও কি অন্যান্য সমাধান রয়েছে?
পেসারিয়ার

@ পেসারিয়র আপনি যদি আমার শেষ লিঙ্কটি পড়েন, আপনি বুঝতে পারবেন যে মাইএসকিউএল (এখন ওরাকল) সরাসরি mysql.dbইনস্টলের উপরে দুটি সারি রাখে যা বেনাম ব্যবহারকারীদের একটি পরীক্ষামূলক ডাটাবেস অ্যাক্সেস করতে দেয়। মজার বিষয় হল, আমাকে জানানো হয়েছিল যে পারকোনা সার্ভারের ইনস্টলেশনটি শেষ হওয়ার আগেই তার সারিগুলি মুছে ফেলবে ( dba.stackexchange.com/questions/66584/… )। যেহেতু আপনি মাইএসকিউএল ব্যবহার করছেন তাই হয় মাইএসকিউএল_সিকিউর_ইনস্টলশন চালান বা নিজেই এই দুটি সারি মুছুন।
RolandoMySQLDBA
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.