নির্দিষ্ট স্কিমা থেকে একটি ইউজারকে বাধা দিতে DELETE কমান্ড ব্যবহার করে mysql.db টেবিল থেকে সেই ইউজারের অনুমতি সরিয়ে দিতে হয়। সিনট্যাক্স:
DELETE FROM mysql.db
WHERE Db IN("yourSpecificSchema","yourSpecificSchema\_%")
AND User = "yourUserName" AND Host = "yourHostName";
প্রথমে সকল ইউজার এবং হোস্ট দেখুন:
mysql> SELECT user, host FROM MySQL.user;
আউটপুট (উদাহরণ):
+------------------+-----------+ | user | host | +------------------+-----------+ | Bob | % | | Chris | localhost | | root | % | | ... | ... | +------------------+-----------+
উদাহরণস্বরূপ, 'Chris' ইউজারকে 'localhost' হোস্ট থেকে 'sample' স্কিমা অ্যাক্সেস করতে বাধা দেওয়া:
mysql> DELETE FROM mysql.db
WHERE Db IN("sample","sample\_%")
AND User="Chris" AND Host="localhost";
Query OK, 0 rows affected (0.00 sec)
পরিবর্তন প্রয়োগ করতে FLUSH PRIVILEGES চালান:
mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.06 sec)
ব্যাখ্যা: mysql.db টেবিলে ডেটাবেস-লেভেলের অধিকার থাকে। Db IN("sample","sample\_%") মানে 'sample' ডেটাবেস এবং 'sample_' দিয়ে শুরু হওয়া সকল ডেটাবেস। ব্যাকস্ল্যাশ (\_) দিয়ে আন্ডারস্কোরটি লিটারেল হিসেবে বিবেচনা করা হয়েছে।
সতর্কতা: এই পদ্ধতিতে সরাসরি সিস্টেম টেবিল ম্যানিপুলেট করা হচ্ছে। ভুল করলে সিকিউরিটি সমস্যা হতে পারে। সাধারণত REVOKE কমান্ড ব্যবহার করা উচিত:
REVOKE ALL PRIVILEGES ON sample.* FROM 'Chris'@'localhost'; FLUSH PRIVILEGES;