اگر شما قصد دارید از phpmyadmin برای مدیریت دیتابیس تان از بستر شبکه (و یا بدتر از آن از بستر اینترنت) استفاده کنید شما نباید از اکانت root استفاده کنید. این مورد نه تنها برای phpmyadmin بلکه برای هر واسط تحت وب دیگری هم صدق میکند.
در فایل /etc/phpmyadmin/config.inc.php به دنبال خط زیر بگردید و مطمئن شوید که قسمت "AllowRoot" برابر با "FALSE" باشد.
در توزیع های Ubuntu / Debian شما نیاز دارید که آن دو خط را همانند زیر اضافه کنید.
تغییرات را ذخیره و سرویس آپاچی را restart کنید.
مراحل مطرح شده در بالا را دنبال کنید تا بتوانید به صفحه لاگین phpmyadmin به آدرس "https://<ip address>/phpmyadmin" دسترسی پیدا کنید و تلاش کنید که با کاربر root لاگین کنید.
سپس به دیتابیس MySQL / MariaDB از طریق خط فرمان لینوکس متصل شوید و با یوزر root لاگین کنید و هر تعداد اکانتی که برای دسترسی به یک دیتابیس نیاز است را ایجاد کنید. در اینجا ما یک اکانت به نام "mohammad" با پسورد "mohammadpassword" ایجاد میکنیم.
سپس با کاربر زیر به phpmyadmin لاگین میکنیم، همانطور که خواهید دید این اکانت تنها به همان یک دیتابیس دسترسی خواهد داشت.
اکنون شما با موفقیت دسترسی root را به phpmyadmin خود غیر فعال کردید و میتوانید از آن برای مدیریت دیتابیس تان استفاده کنید.
من اکیدا به شما توصیه میکنم که یک لایه اضافی امنیتی به phpmyadmin خود و به واسطه " محافظت از پسورد توسط .htaccess " و "راه اندازی https (یا SSL Certificate)" اضافه کنید تا از ارسال username و password به فرمت plain text (متن ساده) از بستر شبکه جلوگیری کنید.
در فایل /etc/phpmyadmin/config.inc.php به دنبال خط زیر بگردید و مطمئن شوید که قسمت "AllowRoot" برابر با "FALSE" باشد.
کد PHP:
$cfg['Servers'][$i]['AllowRoot'] = FALSE;
در توزیع های Ubuntu / Debian شما نیاز دارید که آن دو خط را همانند زیر اضافه کنید.
کد PHP:
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['AllowRoot'] = false;
کد PHP:
------------- On CentOS/RHEL Systems -------------
# systemctl restart httpd.service
------------- On Debian/Ubuntu Systems -------------
# systemctl restart apache2.service
سپس به دیتابیس MySQL / MariaDB از طریق خط فرمان لینوکس متصل شوید و با یوزر root لاگین کنید و هر تعداد اکانتی که برای دسترسی به یک دیتابیس نیاز است را ایجاد کنید. در اینجا ما یک اکانت به نام "mohammad" با پسورد "mohammadpassword" ایجاد میکنیم.
کد PHP:
# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 24
Server version: 10.1.14-MariaDB MariaDB Server
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> CREATE USER 'mohammad'@'localhost' IDENTIFIED BY 'mohammadpassword';
Query OK, 0 rows affected (0.04 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON gestion.* to 'mohammad'@'localhost';
Query OK, 0 rows affected (0.00 sec)
اکنون شما با موفقیت دسترسی root را به phpmyadmin خود غیر فعال کردید و میتوانید از آن برای مدیریت دیتابیس تان استفاده کنید.
من اکیدا به شما توصیه میکنم که یک لایه اضافی امنیتی به phpmyadmin خود و به واسطه " محافظت از پسورد توسط .htaccess " و "راه اندازی https (یا SSL Certificate)" اضافه کنید تا از ارسال username و password به فرمت plain text (متن ساده) از بستر شبکه جلوگیری کنید.