কম্পিউটার

আমরা কিভাবে একটি MySQL ব্যবহারকারীকে বিশেষাধিকার দিতে পারি?


আমাদের নতুন ব্যবহারকারীকে বিশেষাধিকার দিতে হবে যা আমরা তৈরি করেছি কারণ নতুন ব্যবহারকারীর বিশেষাধিকার থাকবে না। আমরা ব্যবহারকারীর অ্যাকাউন্টে বিশেষাধিকার প্রদানের জন্য GRANT বিবৃতি ব্যবহার করতে পারি। এর সিনট্যাক্স নিম্নরূপ হবে -

সিনট্যাক্স

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

উপরের সিনট্যাক্সের ব্যাখ্যা নিম্নরূপ -

প্রথমে, GRANT কীওয়ার্ডের পরে এক বা একাধিক বিশেষাধিকার উল্লেখ করুন। যদি আমরা ব্যবহারকারীকে একাধিক বিশেষাধিকার প্রদান করি, প্রতিটি বিশেষাধিকার একটি কমা দ্বারা পৃথক করা হয়৷

এর পরে, বিশেষাধিকার_স্তরটি নির্দিষ্ট করুন যা বিশেষাধিকারগুলি যে স্তরে প্রযোজ্য তা নির্ধারণ করে। MySQL গ্লোবাল ( * * ) , ডেটাবেস ( ডেটাবেস ) , টেবিল ( database.table ) এবং কলাম স্তর সমর্থন করে৷ যদি আমরা কলাম বিশেষাধিকার স্তর ব্যবহার করি, তাহলে আমাদের অবশ্যই প্রতিটি বিশেষাধিকারের পরে কমা দ্বারা পৃথক করা কলামের একটি বা একটি তালিকা নির্দিষ্ট করতে হবে৷

তারপর, যে ব্যবহারকারীকে আমরা বিশেষাধিকার দিতে চাই তাকে রাখুন। যদি ব্যবহারকারী ইতিমধ্যেই বিদ্যমান থাকে, তাহলে GRANT স্টেটমেন্ট তার বিশেষাধিকার পরিবর্তন করে। অন্যথায়, GRANT বিবৃতি একটি নতুন ব্যবহারকারী তৈরি করে। ঐচ্ছিক ধারা শনাক্ত করে ব্যবহারকারীর জন্য একটি নতুন পাসওয়ার্ড সেট করার অনুমতি দেয়৷

এর পরে, আমরা নির্দিষ্ট করি যে ব্যবহারকারীকে একটি নিরাপদ সংযোগ যেমন SSL, X059, ইত্যাদির মাধ্যমে ডাটাবেস সার্ভারের সাথে সংযোগ করতে হবে৷

অবশেষে, ঐচ্ছিক WITH GRANT OPTION ক্লজ আমাদেরকে অন্য ব্যবহারকারীদের মঞ্জুর করতে বা অন্য ব্যবহারকারীদের থেকে আমাদের কাছে থাকা বিশেষাধিকারগুলিকে সরিয়ে দেওয়ার অনুমতি দেয়৷ উপরন্তু, আমরা মাইএসকিউএল ডাটাবেস সার্ভারের রিসোর্স বরাদ্দ করতে উইথ ক্লজ ব্যবহার করতে পারি যেমন, ব্যবহারকারী প্রতি ঘন্টায় কতগুলি সংযোগ বা বিবৃতি ব্যবহার করতে পারে তা সেট করতে। এটি ভাগ করা পরিবেশে খুবই সহায়ক যেমন MySQL শেয়ার্ড হোস্টিং৷

উদাহরণ

নীচের উদাহরণে আমরা একটি ব্যবহারকারী তৈরি করছি এবং এটিকে বিশেষাধিকার প্রদান করছি −

mysql> use mysql
Database changed
mysql> create user abcd@localhost identified by 'password123';
Query OK, 0 rows affected (0.04 sec)

নীচের প্রশ্নটি আমাদের নতুন ব্যবহারকারীর অ্যাকাউন্ট abcd@localhost-এর জন্য বিশেষ সুবিধা দেবে৷

mysql> SHOW GRANTS FOR abcd@localhost;
+------------------------------------------+
| Grants for abcd@localhost                |
+------------------------------------------+
| GRANT USAGE ON *.* TO 'abcd'@'localhost' |
+------------------------------------------+
1 row in set (0.01 sec)

এখন, abcd@localhost ব্যবহারকারী অ্যাকাউন্টে সমস্ত সুবিধা প্রদান করতে, আমরা নিম্নলিখিত বিবৃতিটি ব্যবহার করতে পারি -

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

এখানে, ON *.* ক্লজ মানে সমস্ত ডাটাবেস এবং ডাটাবেসের সমস্ত বস্তু। অনুদানের বিকল্পটি abcd@localhost-কে অন্যান্য ব্যবহারকারীদের বিশেষাধিকার প্রদানের অনুমতি দেয়।

এখন যদি আমরা আবার SHOW GRANTS স্টেটমেন্ট ব্যবহার করি, তাহলে আমরা দেখতে পাব যে abcd@localhost-এর সুবিধা আপডেট করা হয়েছে।

mysql> SHOW GRANTS FOR abcd@localhost;
+---------------------------------------------------------------------+
| Grants for abcd@localhost                                           |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'abcd'@'localhost' WITH GRANT OPTION |
+---------------------------------------------------------------------+
1 row in set (0.00 sec)

  1. কিভাবে MySQL এ একটি ভিন্ন ব্যবহারকারী হিসাবে লগ ইন করবেন?

  2. সীমিত সুযোগ-সুবিধা সহ MySQL ব্যবহারকারী কিভাবে তৈরি করবেন?

  3. কিভাবে একটি MySQL ব্যবহারকারীর জন্য সংজ্ঞায়িত অনুদান প্রদর্শন করবেন?

  4. আমরা কীভাবে একজন ব্যবহারকারীকে MySQL-এ সমস্ত সঞ্চিত পদ্ধতি অ্যাক্সেস করার অনুমতি দিতে পারি?