MySQL، به شما امکان ایجاد چندین حساب کاربری و اعطای امتیازات را ارائه می‌کند؛ بطوریکه، همه کاربران می‌توانند به پایگاه‌داده‌ها وصل شده و آن‌ها را مدیریت نمایند.

 

چنانچه پس از ایجاد یک حساب کاربری دیگر به آن نیاز ندارید، بهتر است که یا امتیازات آن کاربر را حذف کنید و یا اینکه حساب کاربری را به‌طور کامل حذف نمایید.

در این مقاله، نحوه حذف حساب‌های کاربری MySQL/MariaDB شرح داده شده است.

 

این مطلب نیز ممکن است برای شما مفید باشد: غیر فعال سازی حالت Strict SQL در سرور MySQL

 

دستور DROP USER

در MySQL، می‌توانید با استفاده از دستور DROP USER، کاربران و امتیازات اختصاص داده شده به آن‌ها را حذف نمایید. ساختار کلی این دستور به شرح زیر است:

DROP USER [IF EXISTS] USER_ACCOUNT [, USER_ACCOUNT] ...

به‌عنوان‌مثال، برای حذف حساب کاربری brian@localhost، وارد پوسته MYSQL شده و دستور زیر را اجرای نمایید:

DROP USER 'brian@localhost';

در صورت اجرای موفقیت آمیز، خروجی زیر نمایش داده می‌شود:

Output:
Query OK, 0 rows affected (0.00 sec)

 

برای حذف چندین حساب کاربری با اجرای تنها یک دستور، فرمان DROP USER را به همراه کاربران مورد نظر (که با فاصله از هم جدا شده‌اند) وارد نمایید:

DROP USER 'brian@localhost' 'any@localhost';

اگر پس از دستور، یک حساب کاربری را که وجود ندارد، وارد کنید؛ با یک خطای روبه‌رو می‌شوید. برای عدم نمایش این خطا، هنگام اجرای دستور DROP USER، از گزینه IF EXISTS به‌همراه دستور استفاده نمایید.

اگر با این دستور، کاربری را حذف کنید که در حال حاضر وارد سیستم شده است، نشست کاربر بسته نشده و کاربر قادر خواهد بود تا پایان نشست، کوئری‌های مورد نظر خود را اجرا نماید. اما، بلافاصله پس از اینکه کاربر نشست را بست، حساب او حذف شده و دیگر قادر به ورود به سرور MySQL نخواهد بود.

دقت کنید که پایگاه داده و اشیاء ایجاد شده توسط کاربرِ حذف شده، به‌طور خودکار حذف نمی‌شوند.

 

حذف حساب کاربری MySQL

در این بخش، دستورالعمل‌های گام به گام در مورد نحوه لیست و حذف حساب‌های کاربری MySQL شرح داده شده است.

ابتدا با حساب کاربری root یا کاربر ادمین دیگری، وارد پوسته MySQL شوید. برای این کار دستور زیر را تایپ کنید:

$ sudo mysql

اگر از افزونه تأیید هویت MySQL قدیمی و محلی استفاده می‌کنید، برای ورود به سیستم با حساب کاربری root، دستور زیر و پس از آن رمز عبور مربوطه را وارد نمایید:

$ mysql -u root -p

دستورات زیر در داخل پوسته MySQL اجرا می‌شوند.

 

MySQL، اطلاعات مربوط به کاربران را در جدول user و در پایگاه داده mysql ذخیره می‌کند. برای دریافت لیستی از همه حساب‌های کاربری MySQL، از دستور SELECT به صورت زیر استفاده نمایید:

mysql> SELECT User, Host FROM mysql.user;

در این صورت، خروجی باید چیزی شبیه به این باشد:

Output:
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| root             | localhost |
| luke             | %         |
| jabba            | localhost |
| jabba            | 10.10.8.8 |
| chewbacca        | localhost |
+------------------+-----------+
5 rows in set (0.00 sec)

 

در MySQL، یک حساب کاربری متشکل از نام کاربر و نام‌های میزبان است. بنابراین حساب‌های jabba@localhost و jabba@10.10.8.8 حساب‌های کاربری مختلفی هستند.

فرض کنید که به حساب کاربری chewbacca@localhost دیگر نیاز نداشته و می‌خواهید آن را حذف کنید. بدین منظور، دستور زیر را اجرا نمایید:

mysql> DROP USER 'chewbacca'@'localhost'
output:
Query OK, 0 rows affected (0.00 sec)

در این دستور، حساب کاربری و امتیازات آن حذف می‌شود.

اکنون که کاربر حذف شد، می‌توانید پایگاه‌داده‌های مرتبط با آن کاربر را نیز حذف کنید. برای این هدف می‌توانید از مقاله "حذف پایگاه داده در MySQL از طریق خط" فرمان کمک بگیرید.

 

 

منبع:

linuxize