কম্পিউটার টিউটোরিয়াল

MySQL ইউজারকে প্রিভিলেজ গ্রান্ট (দান) কীভাবে করবেন?

নতুন ইউজার তৈরি করার পর সে ডিফল্টভাবে কোনো প্রিভিলেজ পায় না। GRANT স্টেটমেন্ট ব্যবহার করে প্রিভিলেজ দেওয়া যায়। সিনট্যাক্স:

সিনট্যাক্স

GRANT privilege[, privilege]... ON privilege_level TO user
[IDENTIFIED BY password] [REQUIRE tsl_option]
[WITH [GRANT_OPTION | resource_option]];

ব্যাখ্যা:

  1. GRANT কীওয়ার্ডের পর এক বা একাধিক প্রিভিলেজ নির্দিষ্ট করুন (কমা দিয়ে আলাদা করুন)।
  2. ON ক্লজে প্রিভিলেজ লেভেল: গ্লোবাল (*.*), ডেটাবেস (database.*), টেবিল (database.table), কলাম।
  3. TO ক্লজে ইউজার নির্দিষ্ট করুন। ইউজার থাকলে প্রিভিলেজ মডিফাই হয়, নয়তো নতুন ইউজার তৈরি হয়। IDENTIFIED BY দিয়ে পাসওয়ার্ড সেট করা যায়।
  4. REQUIRE ক্লজে সিকিউর কানেকশন (SSL, X509) বাধ্যতামূলক করা যায়।
  5. WITH GRANT OPTION দিয়ে ইউজার অন্য ইউজারকে প্রিভিলেজ দিতে/বাতিল করতে পারবে। রিসোর্স লিমিট (কানেকশন/স্টেটমেন্ট প্রতি ঘণ্টা)ও সেট করা যায়।

উদাহরণ

abcd@localhost তৈরি করে সকল প্রিভিলেজ দেয়া:

mysql> USE mysql;
Database changed
mysql> CREATE USER abcd@localhost IDENTIFIED BY 'password123';
Query OK, 0 rows affected (0.04 sec)

mysql> SHOW GRANTS FOR abcd@localhost;
+------------------------------------------+
| Grants for abcd@localhost                |
+------------------------------------------+
| GRANT USAGE ON *.* TO 'abcd'@'localhost' |
+------------------------------------------+

mysql> GRANT ALL ON *.* TO 'abcd'@'localhost' WITH GRANT OPTION;
Query OK, 0 rows affected (0.05 sec)

mysql> SHOW GRANTS FOR abcd@localhost;
+---------------------------------------------------------------------+
| Grants for abcd@localhost                                           |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'abcd'@'localhost' WITH GRANT OPTION |
+---------------------------------------------------------------------+
  1. MySQL-এ ভিন্ন ইউজার হিসেবে লগইন করা (mysql -u -p কমান্ড)

  2. MySQL-এ সীমিত অধিকারযুক্ত ইউজার তৈরি করুন

  3. MySQL-এ SHOW GRANTS ব্যবহার করে ইউজারের অনুমতি (privileges) দেখানো

  4. MySQL-এ GRANT EXECUTE ব্যবহার করে ইউজারকে সকল স্টোরড প্রসিডিউর এক্সিকিউট করার অনুমতি দেওয়া