通过不同的用户“登录”phpMyAdmin

通过不同的用户“登录”phpMyAdmin

我希望非技术人员(市场营销/销售人员)能够通过 phpMyAdmin 访问我定期管理的数据:

  1. 无法改变/插入/删除
  2. 无需我构建特殊的数据库查看器应用程序

我已经创建了一个具有有限权限的新用户,但我不想让我的非技术人员必须使用命令提示符并学习 mysql 命令。

理想情况下,我希望他能够进入 phpmyadmin UI,但只能具有允许的权限(在本例中为只读)。

我是否需要设置一个单独的 phpmyadmin,让控制用户成为这个较弱的用户?或者是否存在我在文档中遗漏的特殊“以特定用户身份登录”界面?

更新:

当我使用主机自动安装的 pmas 时,我曾看到过 googletorp 所建议的登录屏幕,但在我安装的开箱即用版本上从未见过。

我尝试注释掉 $cfg['Servers'][$i]['user'],并且 $cfg['Servers'][$i]['pass'] googletorp 建议 - 也许它会向我显示一个登录屏幕。但我得到的却是错误 #1045:

#1045 - 拒绝用户“root”@“localhost”访问(使用密码:否)

然后我想也许可以注释掉 $cfg['Servers'][$i]['controluser'] 和 $cfg['Servers'][$i]['controlpass']。但注释说它们已经理应成为只读用户。

嗯……

答案1

phpmyadmin 只是 mysql 上的一个界面。您只能根据您用于登录的用户执行允许您执行的操作。最终,phpmyadmin 使用您登录的用户凭据为您运行查询,并且无法绕过 mysql 权限。

因此,如果您创建一个具有有限访问权限的用户,他可以使用现有的 phpmyadmin。

您可以自己尝试一下,使用您创建的用户登录,看看在有限的权限下界面是什么样子。

更新:

我尝试过在不同的托管服务提供商等处安装的所有 phpmyadmin,它们都如下所示:

登录

现在从您的其他评论中可以看出,您已通过在配置文件中设置用户来禁用此功能。我没有测试过这一点,因为我不再在本地使用 phpmyadmin,但我猜想如果您从配置文件中删除 mysql 凭据,您将看到上面的登录屏幕。允许使用具有不同权限的不同用户。

答案2

如果您默认安装了 phpMyAdmin,则您正在使用“config”身份验证,并且您的名称和密码存储在 config.inc.php 文件中。由于您没有看到登录屏幕,如果您检查的话,您可能在其中有 $cfg['Servers'][$i]['auth_type'] = 'config'。您还将看到您的姓名和密码。类似于 $cfg['Servers'][$i]['user'] = 'root'; $cfg['Servers'][$i]['password'] = ''; $cfg['Servers'][$i]['AllowNoPassword'] = true;

要显示登录屏幕,您需要更改为使用“cookie”身份验证。您必须对 config.inc.php 文件进行两项更改才能实现这一点,并且强烈建议进行第三次更改以确保安全。您可以看到http://www.phpmyadmin.net/documentation/#faqmultiuser如果您想了解其他选择,请访问此处获取更多信息。

我将按照文件中出现的顺序列出更改。

  1. (推荐)将 blowfish_secret 更改为任意随机字符串。如文件注释所述,此字符串用于在基于 cookie 的身份验证中加密您的密码(这正是您要更改的内容)。

    $cfg['blowfish_secret'] = 'random string';
    
  2. 在第19行左右,将身份验证类型改为cookie

    $cfg['Servers'][$i]['auth_type']            = 'cookie'; /*DEFAULT: 'config'
    
  3. 删除存储密码的三行。(如果您仍在使用用户“root”和密码“”,则可能应该进行更改。当您以 root 身份登录 phpMyAdmin 时,您可以更改/设置密码。)

保存文件,从现在开始,您将获得登录屏幕并必须使用用户名和密码。

答案3

我不太明白你在要求什么......

如果您在 phpmyadmin 中创建了 mysql 用户,那么您的同事只能执行您允许他使用的 SQL 操作。

你这是什么意思:

但我不想让我的非技术人员必须使用命令提示符并学习 mysql 命令。

您在安装了 mysql 的本地计算机上安装了 phpmyadmin 吗?无论如何,他甚至无法使用命令提示符执行任何操作,当然,如果您的同事不知道任何其他具有更高权限的用户登录名。如果您担心破解 mysql 密码,我怀疑他能否做到这一点。唯一的风险是他可以删除您的数据库文件。但是,如果您为他创建了用户(无论您使用什么操作系统),并且权限不允许访问这些数据库文件,那么您就安全了。

答案4

或者,您可以使用Oracle SQL 开发人员+ MySQL JDBC 驱动程序

mysql 驱动程序

相关内容