কিভাবে MariaDB ব্যবহারকারীদের তালিকাভুক্ত এবং পরিচালনা করবেন: ব্যবহারকারী অ্যাকাউন্ট ও অধিকারগুলির সম্পূর্ণ গাইড

目次

1. Introduction

MariaDB আজকের সবচেয়ে ব্যাপকভাবে ব্যবহৃত ডেটাবেস ম্যানেজমেন্ট সিস্টেমগুলোর একটি, যা ব্যবহার সহজতা এবং উচ্চ পারফরম্যান্সের জন্য পরিচিত। এর অনেক বৈশিষ্ট্যের মধ্যে, ব্যবহারকারী ব্যবস্থাপনা একটি গুরুত্বপূর্ণ ভূমিকা পালন করে। ব্যবহারকারীদের সঠিকভাবে পরিচালনা করে আপনি ডেটাবেসের নিরাপত্তা নিশ্চিত করতে এবং কার্যকরী অপারেশন অর্জন করতে পারেন।

এই প্রবন্ধটি MariaDB-তে ব্যবহারকারীর তালিকা কীভাবে পরীক্ষা করা যায় তা নিয়ে কেন্দ্রীভূত। বিশেষভাবে, আমরা SQL কমান্ড ব্যবহার করে ব্যবহারকারীর তালিকা কীভাবে পুনরুদ্ধার করা যায়, প্রতিটি পদ্ধতির পার্থক্য ও সুবিধা, পাশাপাশি সংশ্লিষ্ট প্রিভিলেজ সেটিংস এবং গুরুত্বপূর্ণ বিবেচনাগুলি ব্যাখ্যা করব।

এই গাইডটি শুধুমাত্র MariaDB নবাগতদের জন্য নয়, বরং বর্তমানে প্রোডাকশন পরিবেশ পরিচালনা করছেন এমনদের জন্যও সহায়ক হতে লেখা হয়েছে। শেষ পর্যন্ত অবশ্যই পড়ে দেখুন।

2. How to Check the User List in MariaDB

MariaDB-তে ব্যবহারকারীর তালিকা পরীক্ষা করার জন্য বেশ কয়েকটি পদ্ধতি রয়েছে। প্রতিটি পদ্ধতির নিজস্ব বৈশিষ্ট্য আছে, এবং আপনার উদ্দেশ্যের ভিত্তিতে উপযুক্তটি নির্বাচন করলে ব্যবহারকারী ব্যবস্থাপনা আরও কার্যকর হয়। নিচে আমরা তিনটি প্রতিনিধিত্বমূলক পদ্ধতি বিশদভাবে ব্যাখ্যা করছি।

2.1 Using the mysql.user Table

MariaDB-তে ব্যবহারকারী তথ্য পরীক্ষা করার সবচেয়ে মৌলিক পদ্ধতি হল সরাসরি mysql.user টেবিলকে রেফার করা। এই টেবিলে সব ব্যবহারকারী অ্যাকাউন্টের তথ্য সংরক্ষিত থাকে।

Example Command

নিম্নলিখিত SQL চালিয়ে আপনি ব্যবহারকারীর তালিকা দেখতে পারেন:

SELECT Host, User FROM mysql.user;

Explanation

  • Host : ব্যবহারকারী যেখান থেকে সংযোগ করতে পারবে সেই হোস্টনেমকে নির্দেশ করে।
  • User : MariaDB-তে নিবন্ধিত ব্যবহারকারীর নাম।

Usage Scenarios

  • যখন আপনি সব ব্যবহারকারীকে একটি তালিকায় দেখতে চান।
  • যখন আপনি নির্দিষ্ট হোস্ট থেকে কোন ব্যবহারকারীরা সংযোগ করতে পারে তা যাচাই করতে চান।

Important Notes

  • mysql.user টেবিল রেফার করার জন্য আপনার পর্যাপ্ত অধিকার (সাধারণত root অধিকার) প্রয়োজন।
  • কিছু সংস্করণে সরাসরি mysql.user ব্যবহার করা সুপারিশ করা নাও হতে পারে। আপনার সংস্করণের অফিসিয়াল ডকুমেন্টেশন সর্বদা পরীক্ষা করুন।

2.2 Using the SHOW GRANTS Command

একটি নির্দিষ্ট ব্যবহারকারীর জন্য প্রদান করা প্রিভিলেজ পরীক্ষা করতে আপনি SHOW GRANTS কমান্ড ব্যবহার করতে পারেন।

Example Command

নিম্নরূপ ব্যবহারকারী নির্দিষ্ট করে তাদের প্রিভিলেজ প্রদর্শন করুন:

SHOW GRANTS FOR 'username'@'hostname';

Explanation

  • আপনি প্রতিটি ব্যবহারকারীর বিস্তারিত প্রিভিলেজ পর্যালোচনা করতে পারেন।
  • উদাহরণ আউটপুট:
    GRANT ALL PRIVILEGES ON *.* TO 'user1'@'localhost';
    

Usage Scenarios

  • যখন আপনি যাচাই করতে চান যে ব্যবহারকারীর প্রিভিলেজ সেটিংস সঠিক কিনা।
  • যখন ভুল প্রিভিলেজ কনফিগারেশনের কারণে সমস্যার সমাধান করছেন।

Important Notes

  • যদি আপনার পর্যাপ্ত অধিকার না থাকে, তবে আপনি এই কমান্ডটি চালাতে পারবেন না।

2.3 Using information_schema.USER_PRIVILEGES

MariaDB-তে information_schema নামে একটি সিস্টেম ডেটাবেস রয়েছে। এর মধ্যে USER_PRIVILEGES টেবিলকে কুয়েরি করে আপনি সব ব্যবহারকারীর প্রিভিলেজ তথ্য প্রদর্শন করতে পারেন।

Example Command

SELECT * FROM information_schema.USER_PRIVILEGES;

Explanation

  • এই পদ্ধতি আপনাকে প্রতিটি ব্যবহারকারীর গ্লোবাল প্রিভিলেজ পর্যালোচনা করতে দেয়।
  • আউটপুটে নিম্নলিখিত তথ্য অন্তর্ভুক্ত থাকে:
  • GRANTEE : ব্যবহারকারী নাম এবং হোস্টনেম।
  • PRIVILEGE_TYPE : প্রদান করা প্রিভিলেজের ধরন।
  • IS_GRANTABLE : প্রিভিলেজটি অন্যদেরকে প্রদান করা যায় কি না।

Usage Scenarios

  • যখন আপনি একসাথে একাধিক ব্যবহারকারীর প্রিভিলেজ পর্যালোচনা করতে চান।
  • যখন গ্লোবাল প্রিভিলেজ সেটিংসের অডিট করছেন।

Important Notes

  • কিছু প্রিভিলেজ এই টেবিলে সম্পূর্ণভাবে দৃশ্যমান নাও হতে পারে।

Summary

এই পদ্ধতিগুলি সঠিকভাবে ব্যবহার করে আপনি MariaDB ব্যবহারকারী অ্যাকাউন্ট এবং প্রিভিলেজ তথ্য কার্যকরভাবে পরিচালনা করতে পারবেন। প্রতিটি পদ্ধতির নিজস্ব শক্তি রয়েছে, তাই আপনার নির্দিষ্ট লক্ষ্য অনুযায়ী সঠিকটি নির্বাচন করা অত্যন্ত গুরুত্বপূর্ণ।

3. Detailed Management of MariaDB Users

MariaDB আপনাকে বিস্তারিত ব্যবহারকারী তথ্য পর্যালোচনা এবং প্রিভিলেজ দক্ষতার সাথে পরিচালনা করার সুযোগ দেয়। এই বিভাগে আমরা সঠিক ব্যবহারকারী ব্যবস্থাপনার জন্য প্রয়োজনীয় মূল অপারেশনগুলি ব্যাখ্যা করব।

3.1 Checking User Information

In MariaDB, you can use the SHOW CREATE USER command to check detailed information about a specific user. This command reproduces the statement used when the user was created.

উদাহরণ কমান্ড

Execute the following SQL to display detailed information about the specified user:

SHOW CREATE USER 'username'@'hostname';

ব্যাখ্যা

This command is used to verify the user’s authentication method and other attributes. Example output:

CREATE USER 'user1'@'localhost' IDENTIFIED VIA mysql_native_password USING '***';

ব্যবহারিক দৃশ্যপট

  • যখন আপনি ব্যবহারকারীর প্রমাণীকরণ পদ্ধতি নিশ্চিত করতে চান।

  • যখন সম্ভাব্য সমস্যার জন্য ব্যবহারকারীর বৈশিষ্ট্যগুলি পর্যালোচনা করছেন।

গুরুত্বপূর্ণ নোট

  • এই কমান্ডটি চালানোর জন্য যথাযথ অধিকার প্রয়োজন (সাধারণত root অধিকার)।

৩.২ Setting and Modifying User Privileges

MariaDB allows flexible privilege configuration for each user. You can use the GRANT and REVOKE commands to manage privileges.

Granting Privileges

The following SQL grants specific privileges to a designated user:

GRANT SELECT, INSERT ON database_name.* TO 'username'@'hostname';

Revoking Privileges

To remove unnecessary privileges, use the REVOKE command:

REVOKE INSERT ON database_name.* FROM 'username'@'hostname';

ব্যাখ্যা

  • GRANT কমান্ড নির্দিষ্ট ডাটাবেস বা টেবিলের জন্য অপারেশন অধিকার নির্ধারণ করে।

  • REVOKE কমান্ড আর প্রয়োজন না থাকা অধিকারগুলি সরিয়ে দেয়।

ব্যবহারিক দৃশ্যপট

  • নতুন ব্যবহারকারীর জন্য অধিকার কনফিগার করার সময়।

  • নিরাপত্তা বাড়াতে অপ্রয়োজনীয় অধিকার সরানোর সময়।

গুরুত্বপূর্ণ নোট

  • ভুল অধিকার কনফিগারেশন নিরাপত্তা ঝুঁকি বাড়াতে পারে, তাই সতর্কতার সাথে কাজ করুন।

৩.৩ Deleting a User

Removing unnecessary users enhances database security. Use the DROP USER command to delete a user.

উদাহরণ কমান্ড

Execute the following SQL to delete a specified user:

DROP USER 'username'@'hostname';

ব্যাখ্যা

  • যখন একটি ব্যবহারকারী মুছে ফেলা হয়, সেই ব্যবহারকারীকে দেওয়া সব অধিকার একসাথে সরিয়ে ফেলা হয়।

  • সফল হলে, MariaDB একটি “Query OK” বার্তা প্রদর্শন করে।

ব্যবহারিক দৃশ্যপট

  • ডাটাবেস থেকে অপ্রয়োজনীয় ব্যবহারকারী স্থায়ীভাবে মুছে ফেলতে।

  • নিরাপত্তা উদ্দেশ্যে ব্যবহার না করা অ্যাকাউন্ট পরিষ্কার করতে।

গুরুত্বপূর্ণ নোট

  • যদি ব্যবহারকারী বর্তমানে সংযুক্ত থাকে, অনিচ্ছাকৃত ত্রুটি ঘটতে পারে।

  • ব্যবহারকারী মুছে ফেলা অপরিবর্তনীয়, তাই চালানোর আগে সতর্কতার সাথে নিশ্চিত করুন।

সারাংশ

Proper user management in MariaDB is essential for improving both security and operational efficiency. By reviewing user information, configuring and modifying privileges, and deleting unnecessary users, you can maintain a secure and efficient database environment.

৪. Key Considerations for MariaDB User Management

To manage MariaDB users properly, you need to pay attention to several important points. This section explains how to handle insufficient privileges, key security considerations, and differences across versions.

৪.১ How to Handle Insufficient Privileges

Checking the user list or privileges in MariaDB requires sufficient permissions. If an operation fails due to insufficient privileges, you can try the following approaches.

উদাহরণ ত্রুটি

You may see an error like the following:

ERROR 1045 (28000): Access denied for user 'user1'@'localhost'

কীভাবে সমাধান করবেন

  1. নিশ্চিত করুন আপনি সঠিক ব্যবহারকারী হিসেবে লগইন করেছেন
  • যদি প্রয়োজনীয় অধিকার (যেমন, SELECT অধিকার) না থাকে, আপনি mysql.user টেবিলটি কুয়েরি করতে পারবেন না।

  • একটি বিকল্প হিসেবে, root ব্যবহারকারী হিসেবে লগইন করে অপারেশনটি পুনরায় চেষ্টা করুন।

  1. root ব্যবহারকারী হিসেবে লগইন করুন
  • root হিসেবে লগইন করলে বেশিরভাগ প্রশাসনিক অপারেশন সম্ভব হয়: bash mysql -u root -p
  1. অধিকার পুনরায় কনফিগার করুন
  • প্রয়োজন হলে প্রয়োজনীয় অধিকার প্রদান করুন: sql GRANT ALL PRIVILEGES ON *.* TO 'username'@'hostname'; FLUSH PRIVILEGES;

গুরুত্বপূর্ণ নোট

  • অপ্রয়োজনীয়ভাবে বেশি সুবিধা প্রদান এড়িয়ে চলুন। অতিরিক্ত সুবিধা নিরাপত্তার ঝুঁকি বাড়ায়।

৪.২ নিরাপত্তা সর্বোত্তম অনুশীলন

MariaDB ব্যবহারকারী ব্যবস্থাপনায় নিরাপত্তা সর্বোচ্চ অগ্রাধিকার হওয়া উচিত। নীচে মনে রাখার জন্য মূল বিষয়গুলি দেওয়া হলো।

অব্যবহৃত ব্যবহারকারীদের সরিয়ে ফেলুন

  • অব্যবহৃত ব্যবহারকারী অ্যাকাউন্ট রাখা থাকলে সেগুলি আক্রমণকারীদের জন্য সম্ভাব্য লক্ষ্য হয়ে উঠতে পারে।
  • নিয়মিত ব্যবহারকারীদের পর্যালোচনা করুন এবং অপ্রয়োজনীয় অ্যাকাউন্টগুলি সরিয়ে ফেলুন:
    DROP USER 'username'@'hostname';
    

শক্তিশালী পাসওয়ার্ড নীতি ব্যবহার করুন

  • ব্যবহারকারী তৈরি করার সময়, অনুমান করা কঠিন এমন পাসওয়ার্ড সেট করুন:
    CREATE USER 'user1'@'localhost' IDENTIFIED BY 'StrongPassword123!';
    

বাহ্যিক অ্যাক্সেস সীমাবদ্ধ করুন

  • অপ্রয়োজনীয় বাহ্যিক অ্যাক্সেস প্রতিরোধ করার জন্য কোন হোস্টগুলি সংযোগ করতে পারে তা সীমিত করুন:
    CREATE USER 'user1'@'192.168.0.1' IDENTIFIED BY 'password';
    

লগগুলি পর্যবেক্ষণ করুন

  • সন্দেহজনক অ্যাক্সেস শনাক্ত করার জন্য MariaDB লগগুলি (যেমন, general_log এবং error_log ) নিয়মিত পর্যালোচনা করুন।

৪.৩ MariaDB সংস্করণের মধ্যে পার্থক্য

MariaDB-এর আচরণ এবং প্রস্তাবিত অনুশীলন সংস্করণ অনুসারে পরিবর্তিত হতে পারে, তাই আপনার পদ্ধতি সেই অনুসারে সামঞ্জস্য করুন।

সরাসরি mysql.user অ্যাক্সেসের অবমাননা

  • নতুন সংস্করণগুলিতে, mysql.user টেবিল সরাসরি ক্যোয়েরি করা নিরুৎসাহিত হতে পারে। সেক্ষেত্রে, SHOW GRANTS বা information_schema ব্যবহার করুন।

প্রমাণীকরণ প্লাগইন

  • সংস্করণের উপর নির্ভর করে, ডিফল্ট প্রমাণীকরণ প্লাগইন ভিন্ন হতে পারে। পুরনো সংস্করণগুলি সাধারণত mysql_native_password ব্যবহার করে, যখন নতুন সংস্করণগুলি caching_sha2_password এর মতো আরও নিরাপদ অপশনগুলি সুপারিশ করতে পারে।

প্রস্তাবিত ধাপ

  • আপনার MariaDB সংস্করণ চেক করুন:
    SELECT VERSION();
    
  • আপনার সংস্করণের জন্য অফিসিয়াল ডকুমেন্টেশন দেখুন এবং সর্বশেষ সর্বোত্তম অনুশীলনগুলি অনুসরণ করুন।

সারাংশ

MariaDB ব্যবহারকারী ব্যবস্থাপনার এই মূল বিবেচনাগুলি বুঝে, আপনি নিরাপত্তা শক্তিশালী করতে এবং অপারেশনাল দক্ষতা উন্নত করতে পারেন। সুবিধা সমস্যা এবং সংস্করণ-নির্দিষ্ট পার্থক্যের দিকে মনোযোগ দিন, এবং আপ-টু-ডেট নিরাপত্তা ব্যবস্থা গ্রহণ করুন।

৫. FAQ (ঘন ঘন জিজ্ঞাসিত প্রশ্ন)

নীচে MariaDB ব্যবহারকারী ব্যবস্থাপনা সম্পর্কিত সাধারণ প্রশ্ন এবং উত্তর দেওয়া হলো। এই বিভাগে সুবিধা কনফিগারেশন, ত্রুটি হ্যান্ডলিং এবং রুট-ব্যবহারকারী সমস্যাগুলি কভার করা হয়েছে যা প্রশাসকরা প্রায়ই মুখোমুখি হন।

Q1: আমি কীভাবে শুধুমাত্র একটি নির্দিষ্ট ব্যবহারকারীর জন্য সুবিধা প্রদান করতে পারি?

উত্তর

আপনি GRANT কমান্ড ব্যবহার করে শুধুমাত্র প্রয়োজনীয় সুবিধাগুলি একটি নির্দিষ্ট ব্যবহারকারীর জন্য প্রদান করতে পারেন। নীচে একটি উদাহরণ দেওয়া হলো যা একটি নির্দিষ্ট ডেটাবেসে SELECT এবং INSERT সুবিধা প্রদান করে:

GRANT SELECT, INSERT ON database_name.* TO 'username'@'hostname';
FLUSH PRIVILEGES;

মূল বিষয়

  • database_name.* নির্দিষ্ট করে, সুবিধাগুলি সেই ডেটাবেসের মধ্যে সকল টেবিলের জন্য প্রযোজ্য।
  • পরিবর্তনগুলি কার্যকর হওয়ার জন্য FLUSH PRIVILEGES; চালান।

Q2: ব্যবহারকারী তালিকা দেখা না গেলে কারণ এবং সমাধান কী?

উত্তর

যদি আপনি ব্যবহারকারী তালিকা দেখতে না পারেন, তাহলে নিম্নলিখিত কারণগুলি সাধারণ।

  1. অপর্যাপ্ত সুবিধা
  • যদি প্রয়োজনীয় সুবিধা (যেমন, SELECT সুবিধা) অনুপস্থিত থাকে, তাহলে আপনি mysql.user টেবিল ক্যোয়েরি করতে পারবেন না।
  • একটি কাজকরা পদ্ধতি হিসেবে, রুট ব্যবহারকারী হিসেবে লগইন করার চেষ্টা করুন এবং অপারেশনটি পুনরাবৃত্তি করুন।
  1. সঠিক কমান্ড ব্যবহার করা
  • নতুন MariaDB সংস্করণগুলিতে, mysql.user নিরুৎসাহিত হতে পারে। সেক্ষেত্রে, নিম্নলিখিত কমান্ডটি ব্যবহার করুন: SELECT User, Host FROM information_schema.USER_PRIVILEGES;
  1. আপনার MariaDB সংস্করণ চেক করুন
  • প্রস্তাবিত পদ্ধতিগুলি সংস্করণ অনুসারে ভিন্ন হতে পারার কারণে, প্রথমে আপনার বর্তমান সংস্করণ চেক করুন: SELECT VERSION();

Q3: রুট ব্যবহারকারী লক হলে আমি কী করব?

উত্তর

যদি রুট ব্যবহারকারী লক হয় এবং আপনি লগইন করতে না পারেন, তাহলে এই ধাপগুলি অনুসরণ করুন।

  1. সেফ মোডে MariaDB শুরু করুন
  • সার্ভারটি বন্ধ করুন এবং সেফ মোডে পুনরায় শুরু করুন: bash mysqld_safe --skip-grant-tables &
  1. রুট পাসওয়ার্ড রিসেট করুন
  • নিরাপদ মোডে MariaDB-তে লগ ইন করুন, তারপর নিম্নলিখিত কমান্ড ব্যবহার করে রুট পাসওয়ার্ড রিসেট করুন: UPDATE mysql.user SET Password=PASSWORD('new_password') WHERE User='root'; FLUSH PRIVILEGES;
  1. নিরাপদ মোড থেকে বেরিয়ে স্বাভাবিকভাবে রিস্টার্ট করুন
  • MariaDB রিস্টার্ট করুন এবং স্বাভাবিক অপারেশনে ফিরে আসুন।

গুরুত্বপূর্ণ নোট

নিরাপদ মোডে প্রমাণীকরণ বাইপাস করা হয়, তাই এই সময়ে কোনো তৃতীয় পক্ষ সার্ভারে প্রবেশ না করতে পারে তা নিশ্চিত করুন।

Q4: ব্যবহারকারী মুছে ফেলার সময় ত্রুটি পেলাম। আমি কী করব?

উত্তর

যদি ব্যবহারকারী মুছে ফেলার সময় ত্রুটি পান, তবে নিম্নলিখিত সমস্যাগুলি সাধারণ কারণ হতে পারে।

  1. আপনি যে ব্যবহারকারীটি মুছে ফেলতে চেয়েছেন তিনি বর্তমানে ব্যবহার করছেন
  • যদি ব্যবহারকারী বর্তমানে সংযুক্ত থাকে, মুছে ফেলা ব্যর্থ হতে পারে।
  • একটি সমাধান হিসেবে, ব্যবহারকারীর সংযোগ জোরপূর্বক বন্ধ করুন: SHOW PROCESSLIST; KILL connection_id;
  1. নির্ভরশীল অবজেক্ট বিদ্যমান
  • যদি ব্যবহারকারীর সাথে সংযুক্ত অবজেক্ট (যেমন ভিউ বা স্টোরড প্রোসিডিউর) থাকে, তবে সেগুলি প্রথমে মুছে ফেলতে হতে পারে।

Q5: SHOW GRANTS আউটপুট কীভাবে সংরক্ষণ করব?

উত্তর

আপনি SHOW GRANTS এর আউটপুট পরে পর্যালোচনার জন্য একটি ফাইলে সংরক্ষণ করতে পারেন।

  1. ফাইলে সংরক্ষণ করুন
  • কমান্ড লাইনে mysql ক্লায়েন্ট ব্যবহার করে আউটপুট রিডাইরেক্ট করুন: bash mysql -u root -p -e "SHOW GRANTS FOR 'username'@'hostname';" > grants_output.txt
  1. SQL স্টেটমেন্ট হিসেবে সংরক্ষণ করুন
  • আউটপুটকে একটি টেক্সট ফাইলে সংরক্ষণ করুন যাতে পরে পুনরায় ব্যবহার করা যায়।

সারাংশ

এই FAQ বিভাগে আমরা MariaDB ব্যবহারকারী ব্যবস্থাপনা সংক্রান্ত সাধারণ প্রশ্নগুলোর উত্তর দিয়েছি। এই উত্তরগুলি ব্যবহার করে সমস্যার সমাধান করুন এবং আপনার অপারেশনাল দক্ষতা বাড়ান।