我希望非技术人员(市场营销/销售人员)能够通过 phpMyAdmin 访问我定期管理的数据:
- 无法改变/插入/删除
- 无需我构建特殊的数据库查看器应用程序
我已经创建了一个具有有限权限的新用户,但我不想让我的非技术人员必须使用命令提示符并学习 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如果您想了解其他选择,请访问此处获取更多信息。
我将按照文件中出现的顺序列出更改。
(推荐)将 blowfish_secret 更改为任意随机字符串。如文件注释所述,此字符串用于在基于 cookie 的身份验证中加密您的密码(这正是您要更改的内容)。
$cfg['blowfish_secret'] = 'random string';
在第19行左右,将身份验证类型改为cookie
$cfg['Servers'][$i]['auth_type'] = 'cookie'; /*DEFAULT: 'config'
删除存储密码的三行。(如果您仍在使用用户“root”和密码“”,则可能应该进行更改。当您以 root 身份登录 phpMyAdmin 时,您可以更改/设置密码。)
保存文件,从现在开始,您将获得登录屏幕并必须使用用户名和密码。
答案3
我不太明白你在要求什么......
如果您在 phpmyadmin 中创建了 mysql 用户,那么您的同事只能执行您允许他使用的 SQL 操作。
你这是什么意思:
但我不想让我的非技术人员必须使用命令提示符并学习 mysql 命令。
您在安装了 mysql 的本地计算机上安装了 phpmyadmin 吗?无论如何,他甚至无法使用命令提示符执行任何操作,当然,如果您的同事不知道任何其他具有更高权限的用户登录名。如果您担心破解 mysql 密码,我怀疑他能否做到这一点。唯一的风险是他可以删除您的数据库文件。但是,如果您为他创建了用户(无论您使用什么操作系统),并且权限不允许访问这些数据库文件,那么您就安全了。
答案4
或者,您可以使用Oracle SQL 开发人员+ MySQL JDBC 驱动程序