নতুন ইউজার তৈরি করার পর সে ডিফল্টভাবে কোনো প্রিভিলেজ পায় না। GRANT স্টেটমেন্ট ব্যবহার করে প্রিভিলেজ দেওয়া যায়। সিনট্যাক্স:
সিনট্যাক্স
GRANT privilege[, privilege]... ON privilege_level TO user [IDENTIFIED BY password] [REQUIRE tsl_option] [WITH [GRANT_OPTION | resource_option]];
ব্যাখ্যা:
GRANTকীওয়ার্ডের পর এক বা একাধিক প্রিভিলেজ নির্দিষ্ট করুন (কমা দিয়ে আলাদা করুন)।ONক্লজে প্রিভিলেজ লেভেল: গ্লোবাল (*.*), ডেটাবেস (database.*), টেবিল (database.table), কলাম।TOক্লজে ইউজার নির্দিষ্ট করুন। ইউজার থাকলে প্রিভিলেজ মডিফাই হয়, নয়তো নতুন ইউজার তৈরি হয়।IDENTIFIED BYদিয়ে পাসওয়ার্ড সেট করা যায়।REQUIREক্লজে সিকিউর কানেকশন (SSL, X509) বাধ্যতামূলক করা যায়।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 | +---------------------------------------------------------------------+