数据库密码究竟保护什么?

The*_*Baj 2 mysql phpmyadmin

当我设置数据库密码时,我想知道我的服务器上的密码保护究竟是什么。我不清楚人们在说密码保护数据库时指的是什么。它们是指单个特定数据库还是指位于服务器上的完整 mysql 数据库结构。我问的原因是,当我设置密码时,我在 phpMyAdmin 中管理的所有数据库只有一个密码。因此,当我需要在 codeigniter 的配置文件中输入密码时,对于我正在使用的所有不同数据库,它总是相同的。为了让 phpMyAdmin 启动人们所引用的数据库密码,我是否需要输入密码,或者我可以(并且应该)为我的单独数据库设置不同的密码?

G-N*_*get 6

您所说的密码是 MySQL 用户的密码。您并没有真正为数据库或表设置密码。您可以通过创建多个具有不同密码的用户并仅授予每个用户访问特定数据库的权限,为不同的 DB 有效地实施不同的密码。当人们说您应该为数据库设置密码时,他们可能意味着您不应该使用没有密码的用户,这是可能的,但由于明显的安全问题,不应该这样做。

您是否“应该”使用多个用户取决于您的情况。如果您有多个由独立应用程序使用的数据库,最好为每个应用程序创建一个用户,以帮助隔离任何风险,以免通过数据库在应用程序之间传播。如果您有一个被不同应用程序使用的数据库,您可以使用不同的用户来帮助跟踪内容或锁定权限。如果您有应用程序,通常只使用一个用户是安全的。

使用不同用户的主要原因是锁定权限并防止任何错误/攻击造成太大损害。如果您正在执行只需要读取数据的任务,使用只有SELECT权限的用户可以防止意外删除或修改数据;尽管发生此类事件的风险非常低,但有办法预防它仍然是一件好事。使用不同的用户通常只有在所有用户都看到重要使用时才有帮助。在您的情况下,您可以使用多个用户,但跟踪何时使用哪个用户以及哪个用户当前连接可能会变得更加麻烦。