如何禁用root登录访问PhpMyAdmin?

为什么需要禁用root登录访问PhpMyAdmin?

PhpMyAdmin是一个开源的MySQL数据库管理工具,可以通过Web界面与MySQL数据库进行交互操作,方便开发者和管理员管理数据库。

然而,PhpMyAdmin默认情况下具有对MySQL数据库的完全访问权限,这意味着具有PhpMyAdmin访问权限的用户可以执行对数据库的任何操作。

如果您将PhpMyAdmin部署在公共网络上并允许root用户登录,那么恶意用户可能会利用此技术进行攻击。例如,攻击者可以尝试使用社会工程学技术获取root用户的密码,并利用此密码登录PhpMyAdmin执行恶意操作。

为了保护服务器和数据库的安全,最好禁止root用户登录PhpMyAdmin。

如何禁用root登录访问PhpMyAdmin?

以下是禁止root用户登录PhpMyAdmin的步骤:

第一步:创建一个新的管理员账户

创建一个新的管理员账户并赋予它与root用户相同的权限。

可以通过MySQL命令行界面创建一个新的管理员账户并授予相应的权限:

CREATE USER 'new_admin'@'localhost' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON *.* TO 'new_admin'@'localhost' WITH GRANT OPTION;

在上述代码中,new_admin是新管理员账户的用户名,password是管理员账户的密码。

第二步:修改PhpMyAdmin配置文件

找到PhpMyAdmin的配置文件config.inc.php并修改它。

可以使用下面的命令找到位于哪个目录下:

sudo find / -name "config.inc.php"

默认情况下,PhpMyAdmin配置文件位于该目录下:/etc/phpmyadmin/config.inc.php。

打开config.inc.php文件并找到如下代码行:

$cfg['Servers'][$i]['AllowRoot'] = true;

将true更改为false,表示禁止root用户登录:

$cfg['Servers'][$i]['AllowRoot'] = false;

然后添加下面的代码以启用新创建的管理员账户:

$cfg['Servers'][$i]['AllowNoPasswordRoot'] = false;  // 禁止无因密码登录

$cfg['Servers'][$i]['auth_type'] = 'cookie'; // 认证类型为cookie

$cfg['Servers'][$i]['user'] = 'new_admin'; // 新管理员账户的用户名

$cfg['Servers'][$i]['password'] = 'password'; // 新管理员账户的密码

在上述代码中,new_admin是新管理员账户的用户名,password是管理员账户的密码。

第三步:重启Apache服务器

重启Apache服务器以使更改生效:sudo service apache2 restart

如何测试新的管理员账户是否正常?

在浏览器中打开PhpMyAdmin并使用新的管理员账户登录。

步骤1:打开浏览器并输入PhpMyAdmin的URL

在浏览器中输入您的PhpMyAdmin URL。 在本教程中,我们的PhpMyAdmin URL是http://your_server_IP_or_domain/phpmyadmin/

步骤2:输入新的管理员账户的用户名和密码

在PhpMyAdmin登录页面中输入:new_admin(管理员账户的用户名)和password(管理员账户的密码)。

步骤3:测试权限

登录成功后,您应该能够执行与root用户相同的所有操作。

结论

在部署PhpMyAdmin时禁止root用户登录是一种保护MySQL服务器的安全措施。

可以通过创建一个新的管理员账户,并在PhpMyAdmin配置文件中指定该账户的用户名和密码来实现禁止root用户登录。

记住,在测试新的管理员账户之前,确保您已备份了所有MySQL数据库以防止数据丢失。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签