"অনুদান ব্যবহার" সরানো যায় না


15

আমি কিছু স্টাফ পরীক্ষা করছিলাম এবং একটি যুক্ত করেছি:

grant usage on statistics.* to cptnotsoawesome@localhost identified by 'password';

তাই এখন যখন আমি না

show grants for cptnotsoawesome@localhost;

আমি দেখতে পাচ্ছি যে এর মধ্যে একটি হ'ল:

Grants for cptnotsoawesome@localhost
----------------------------------
GRANT USAGE ON *.* TO 'cptnotsoawesome'@'localhost' IDENTIFIED BY PASSWORD 'somePEW-PEWstring' 

এটি সুরক্ষার ঝুঁকি হিসাবে আমি মনে করি যেহেতু এখন আমি এটিকে সরাতে চাই, তাই আমি এটি করি:

REVOKE USAGE ON *.* FROM 'cptnotsoawesome'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

তবে এটি এখনও দেখায় যে অনুদানের তালিকায় ইউএসএজি অনুদান।

Grants for cptnotsoawesome@localhost
----------------------------------
GRANT USAGE ON *.* TO 'cptnotsoawesome'@'localhost' IDENTIFIED BY PASSWORD 'somePEW-PEWstring' 

কোন ধারণা কেন? আমি কি ভুল করছি?

উত্তর:


20

হুডের নীচে, আপনি যখন কেবলমাত্র ইউএসএজে থাকা কোনও ব্যবহারকারীকে দেখেন যে ব্যবহারকারীকে সমস্ত বৈশ্বিক সুযোগ-সুবিধাগুলি সহ mysql.user সারণিতে লেখা রয়েছে in

আপনি ব্যবহারকারীটির কাছে এটি প্রাথমিকভাবে বলেছিলেন:

grant usage on statistics.* to cptnotsoawesome@localhost identified by 'password'; 

আপনি একটি সারিতে দেখতে পাবেন mysql.userMD5 পাসওয়ার্ড এবং সব globals privs সেট সঙ্গে N। আপনার সাথে mysql.db এ একটি সারিও দেখতে হবে

  • ব্যবহারকারী = 'cptnotsoawesome'
  • হোস্ট = 'স্থানীয় হোস্ট'
  • ডিবি = 'পরিসংখ্যান'
  • সমস্ত ডিবি স্তরের বেসরকারী সংস্থা 'ওয়াই' তে সেট

আপনি এই ক্যোয়ারি দিয়ে তাদের দেখতে সক্ষম হওয়া উচিত

SELECT * FROM mysql.db
WHERE user='cptnotsoawesome'
AND host='localhost'
AND db='statistics'\G

আপনি যখন REVOKE কমান্ডটি চালালেন, আপনি কেবল সারিটি সরিয়ে ফেললেন mysql.db। এটি সারিটি স্পর্শ করেনি mysql.user। সুতরাং, আপনি এখনও মাইএসকিএল এ লগইন করতে পারেন এবং কেবল চালানোর জন্য এই ছদ্মবেশ রয়েছে

SHOW GLOBAL VARIABLES;
SHOW GLOBAL STATUS;

যদি কোনও টেস্ট ডাটাবেস বলা হয় testবা এমন একটি ডাটাবেস থাকে যার প্রথম 5 টি অক্ষর হয় test_(এটি ব্যবহার করে দেখুন SELECT * FROM mysql.db WHERE db LIKE 'test%';) তবে কেবলমাত্র ইউএসএজেজে থাকা ব্যবহারকারীর পরীক্ষার ডাটাবেসের পুরো অধিকার থাকতে পারে। আমি সার্ভারফল্ট সেপ্টেম্বর 2011 এ সম্পর্কে লিখেছি

আপনি যদি mysql.user থেকে সারিটি সরাতে চান তবে আপনি চালাতে পারেন

DROP USER cptnotsoawesome@localhost;

অথবা

DELETE FROM mysql.user WHERE
WHERE user='cptnotsoawesome'
AND host='localhost';
FLUSH PRIVILEGES;

9

ব্যবহারের অর্থ হ'ল ব্যবহারকারীর কোনও সুবিধা নেই।

You have to use 'DROP USER'. 

drop user cptnotsoawesome@localhost;

আপনি ইউজারকে বাদ না দিয়ে আসলে ইউএসজি বাতিল করতে পারবেন না US ইউএসজি একটি বিশ্বস্তরের সুবিধা level

কটাক্ষপাত আছে এই লিঙ্কটি


আমি এটি করব, যদি এটি ডাটাবেজে কোনও খারাপ কাজ করে, যেমন এটি যদি সুরক্ষা হুমকী বা এর মতো কিছু, অন্যথায় - আমি কেবল এটি ছেড়ে দিতে পারি
কাটাফালকাস

2

দয়া করে এই প্রশ্নটি দেখুন: -

/programming/2126225/why-is-a-grant-usage-created-the-first-time-i-grant-a-user-privileges

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


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