নতুন ডেটাবেস, ইউজার তৈরি এবং সেটিকে নির্দিষ্ট প্রিবিলেজ (SELECT, INSERT, UPDATE, DELETE, EXECUTE) দিতে স্ট্যান্ডার্ড SQL কমান্ডগুলো ব্যবহার করা হয়।
সינট্যাক্স ও ধাপসমূহ
-- ১. ডেটাবেস তৈরি (UTF-8 чарসেট) CREATE DATABASE yourDatabaseName DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- ২. ইউজার তৈরি CREATE USER `yourUserName`@`%` IDENTIFIED BY 'yourPassword'; -- ৩. প্রিবিলেজ দান GRANT SELECT ON yourDatabaseName.* TO `yourUserName`@`%`; GRANT INSERT ON yourDatabaseName.* TO `yourUserName`@`%`; GRANT UPDATE ON yourDatabaseName.* TO `yourUserName`@`%`; GRANT DELETE ON yourDatabaseName.* TO `yourUserName`@`%`; GRANT EXECUTE ON yourDatabaseName.* TO `yourUserName`@`%`; -- ৪. প্রিবিলেজ রিলোড (MySQL 8.0+ এ অটো, পুরানো ভার্সনে লাগে) FLUSH PRIVILEGES;
উদাহরণ: demo_app ডেটাবেস এবং John_123 ইউজার
mysql> CREATE DATABASE demo_app DEFAULT CHARACTER SET utf8; mysql> CREATE USER `John_123`@`%` IDENTIFIED BY '123456'; mysql> GRANT SELECT ON demo_app.* TO `John_123`@`%`; mysql> GRANT INSERT ON demo_app.* TO `John_123`@`%`; mysql> GRANT UPDATE ON demo_app.* TO `John_123`@`%`; mysql> GRANT DELETE ON demo_app.* TO `John_123`@`%`; mysql> GRANT EXECUTE ON demo_app.* TO `John_123`@`%`;
প্রিবিলেজ যাচাই
mysql> SHOW GRANTS FOR `John_123`@`%`;
+-----------------------------------------------------------------------------+ | Grants for John_123@% | +-----------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO `John_123`@`%` | | GRANT SELECT, INSERT, UPDATE, DELETE, EXECUTE ON `demo_app`.* TO `John_123`@`%` | +-----------------------------------------------------------------------------+
সার্টিফিকেট প্রিবিলেজ (শর্টকাট)
নীতি ব্যাখ্যা Least Privilege শুধু দরকারি প্রিবিলেজ দিন (যেমন শুধু SELECT) Host Restriction `%` (যেকোনো হোস্ট) বদলে নির্দিষ্ট IP/হোস্ট: `John_123`@`192.168.1.%` Strong Password লম্বা, জটিল পাসওয়ার্ড ব্যবহার করুন Rotate Credentials নিয়মিত পাসওয়ার্ড পরিবর্তন করুন Audit প্রিবিলেজ পরিবর্তন লগ করুন প্রিবিলেজ রিভোক করা
REVOKE DELETE ON demo_app.* FROM `John_123`@`%`;ইউজার ডিলিট করা
DROP USER `John_123`@`%`;