آموزش ها-هاست نگار

مدیریت کاربران در MySQL

 

MySQL محبوب ترین سیستم مدیریت پایگاه داده رابطه ای منبع باز است. سرور MySQL به ما اجازه می دهد تا کاربران و پایگاه های اطلاعاتی متعددی ایجاد کنیم و امتیازات مناسبی را به کاربران اعطا کنیم تا کاربران بتوانند به پایگاه های داده دسترسی داشته باشند و مدیریت کنند.
در این آموزش نحوه استفاده از خط فرمان را برای ایجاد و مدیریت پایگاه داده ها و کاربران MySQL یا MariaDB توضیح می دهیم.
 
قبل از شروع کردن
قبل از شروع به توضیح این آموزش، فرض می کنیم که سرور MySQL یا MariaDB را روی سیستم خود نصب کرده اید. تمام دستورات به عنوان یک کاربر root اجرا می شوند.
برای باز کردن اعلان MySQL، دستور زیر را تایپ کنید و پس از درخواست، رمز عبور کاربر MySQL root را وارد کنید:
mysql -u root -p
 
یک پایگاه داده MySQL جدید ایجاد کنید
برای ایجاد یک پایگاه داده MySQL جدید دستور زیر را اجرا کنید، کافی است نام پایگاه داده ای را که می خواهید ایجاد کنید جایگزین database_name کنید:
;CREATE DATABASE database_name
Output
Query OK, 1 row affected (0.00 sec)
اگر بخواهید پایگاه داده ای را ایجاد کنید که از قبل وجود دارد، با پیغام خطای زیر روبرو خواهید شد:
Output ERROR 1007 (HY000): Can't create database 'database_name'; database exists
برای جلوگیری از خطا در صورت وجود پایگاه داده با همان نامی که می خواهید ایجاد کنید، می توانید از دستور زیر استفاده کنید:
;CREATE DATABASE IF NOT EXISTS database_name
Output
Query OK, 1 row affected, 1 warning (0.00 sec)
در خروجی بالا، Query OK به این معنی است که کوئری با موفقیت انجام شده است و 1warning به ما می گوید که پایگاه داده از قبل وجود دارد و پایگاه داده جدیدی ایجاد نشده است.
 
لیست تمام پایگاه های داده MySQL
با دستور زیر می توانید تمام پایگاه های داده موجود در سرور MySQL یا MariaDB ما را فهرست کنید:
;SHOW DATABASES
خروجی چیزی شبیه به این خواهد بود:
+--------------------+
| Database |
+--------------------+
| information_schema |
| database_name |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
پایگاه داده های information_schema، mysql، performance_schema و sys در زمان نصب ایجاد می شوند و اطلاعات مربوط به سایر پایگاه های داده، پیکربندی سیستم، کاربران، مجوزها و سایر داده های مهم را ذخیره می کنند. این پایگاه های داده برای عملکرد مناسب نصب MySQL ضروری هستند.
 
پایگاه داده MySQL را حذف کنید
حذف پایگاه داده MySQL به سادگی اجرای یک دستور است. این عمل غیر قابل برگشت است و باید با احتیاط انجام شود. اطمینان حاصل کنید که پایگاه داده اشتباهی را حذف نمی کنید، زیرا پس از حذف پایگاه داده نمی توان آن را بازیابی کرد. برای حذف MySQL یا MariaDB، پایگاه داده دستور زیر را اجرا کنید:
;DROP DATABASE database_name
Output
Query OK, 0 rows affected (0.00 sec)
اگر بخواهید پایگاه داده ای را که وجود ندارد حذف کنید، پیام خطای زیر را مشاهده خواهید کرد:
ERROR 1008 (HY000): Can't drop database 'database_name'; database doesn't exist
برای جلوگیری از این خطا می توانید از دستور زیر استفاده کنید:
;DROP DATABASE IF EXISTS database_name
 
یک حساب کاربری MySQL جدید ایجاد کنید
یک حساب کاربری در MySQL از یک نام کاربری و قسمت های نام میزبان تشکیل شده است. برای ایجاد یک حساب کاربری جدید MySQL دستور زیر را اجرا کنید، کافی است نام کاربری را که می خواهید ایجاد کنید با "database_user" را جایگزین کنید:
;CREATE USER 'database_user'@'localhost' IDENTIFIED BY 'user_password'
در دستور بالا قسمت hostname را روی localhost قرار داده‌ایم که به این معنی است که این کاربر فقط از localhost (یعنی از سیستمی که MySQL Server در آن اجرا می‌شود) می‌تواند به سرور MySQL متصل شود. اگر می خواهید از هاست یا هاست های دیگری اجازه دسترسی بدهید، کافی است لوکال هاست را با IP دستگاه تغییر دهید یا از علامت عام '%' برای قسمت میزبان استفاده کنید، به این معنی که حساب کاربری می تواند از هر میزبانی متصل شود.
برای جلوگیری از خطا هنگام تلاش برای ایجاد یک حساب کاربری که از قبل وجود دارد، می توانید استفاده کنید:
;CREATE USER IF NOT EXISTS 'database_user'@'localhost' IDENTIFIED BY 'user_password'
Output
Query OK, 0 rows affected, 1 warning (0.00 sec)
 
رمز عبور حساب کاربری MySQL را تغییر دهید
نحو تغییر رمز عبور حساب کاربری MySQL یا MariaDB به نسخه سروری که در سیستم خود اجرا می کنید بستگی دارد. با دستور زیر می توانید نسخه سرور خود را پیدا کنید:
mysql --version
اگر MySQL 5.7.6 و جدیدتر یا MariaDB 10.1.20 و جدیدتر دارید، برای تغییر رمز عبور از دستور زیر استفاده کنید:
;ALTER USER 'database_user'@'localhost' IDENTIFIED BY 'new_password'
اگر MySQL 5.7.5 و قدیمی تر یا MariaDB 10.1.20 و قدیمی تر دارید، از:
;SET PASSWORD FOR 'database_user'@'localhost' = PASSWORD('new_password')
در هر دو مورد، خروجی باید به شکل زیر باشد:
Output
Query OK, 0 rows affected (0.00 sec)
 
لیست تمام حساب های کاربری MySQL
می توانید با کوئری زیر در mysql.users همه حساب های کاربری MySQL یا MariaDB را فهرست کنید:
;SELECT user, host FROM mysql.user
خروجی باید شبیه زیر باشد:
+------------------+-----------+
| user | host |
+------------------+-----------+
| database_user | % |
| database_user | localhost |
| debian-sys-maint | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
6 rows in set (0.00 sec)
 
 
 
حساب کاربری MySQL را حذف کنید
برای حذف یک حساب کاربری از دستور زیر استفاده کنید:
;DROP USER 'database_user@'localhost'
اگر بخواهید یک حساب کاربری را حذف کنید که وجود ندارد، خطایی رخ می دهد.
ERROR 1396 (HY000): Operation DROP USER failed for 'database_user'@'localhost'
برای جلوگیری از خطا می توانید از کوئری زیر استفاده کنید:
;DROP USER IF EXISTS 'database_user'@'localhost'
Output
Query OK, 0 rows affected, 1 warning (0.00 sec)
 
سطح دسترسی یک حساب کاربری MySQL
چندین نوع سطح دسترسی یا امتیاز وجود دارد که می توان به یک حساب کاربری اعطا کرد. شما می توانید لیست کاملی از سطح های دسترسی توسط MySQL را در اینجا بیابید. در این راهنما چندین مثال را مرور خواهیم کرد:
برای اعطای تمام سطح دسترسی به یک حساب کاربری در یک پایگاه داده خاص، از دستور زیر استفاده کنید:
;GRANT ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost'
برای اعطای تمام امتیازات به یک حساب کاربری در تمام پایگاه‌های داده، از دستور زیر استفاده کنید:
;GRANT ALL PRIVILEGES ON *.* TO 'database_user'@'localhost'
برای اعطای تمام امتیازات به یک حساب کاربری در یک جدول خاص از یک پایگاه داده، از دستور زیر استفاده کنید:
;GRANT ALL PRIVILEGES ON database_name.table_name TO 'database_user'@'localhost'
اگر می خواهید فقط امتیازات خاصی را به یک حساب کاربری در یک نوع پایگاه داده خاص اعطا کنید:
;GRANT SELECT, INSERT, DELETE ON database_name.* TO database_user@'localhost'
 
لغو مجوزها از یک حساب کاربری MySQL
اگر نیاز به لغو یک یا چند امتیاز یا همه امتیازات از یک حساب کاربری دارید، نحو تقریباً مشابه اعطای آن است. به عنوان مثال، اگر می خواهید تمام امتیازات یک حساب کاربری را روی یک پایگاه داده خاص لغو کنید، از دستور زیر استفاده کنید:
;REVOKE ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost'
 
نمایش امتیازات حساب کاربری MySQL
برای یافتن امتیاز(های) اعطا شده به یک نوع حساب کاربری خاص MySQL:
;SHOW GRANTS FOR 'database_user'@'localhost'
 +---------------------------------------------------------------------------+
Output
| Grants for database_user@localhost |
+---------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'database_user'@'localhost' |
| GRANT ALL PRIVILEGES ON `database_name`.* TO 'database_user'@'localhost' |
+---------------------------------------------------------------------------+
2 rows in set (0.00 sec)
در این مقاله نحوه مدیریت پایگاه داده ها و کاربران MySQL و MariaDB را توضیح دادیم، امیدواریم این مقاله آموزشی برای شما مفید بوده باشد. برای دیدن باقی آموزش ها میتوانید وارد منوی پشتیبانی بخش آموزش ها شوید، در صورتی که درباره این آموزش به مشکل یا سوالی برخورد کردید، میتوانید آن را در بخش دیدگاه بیان کنید.
 
 

نوشتن دیدگاه


تصویر امنیتی
تصویر امنیتی جدید

خرید هاست

 

آموزش های مرتبط