我有一个MySQL用户添加到数据库中,我希望阻止他们查看某些表。
我可以通过阻止他们运行DROP或ALTER等语句来限制他们的权限。但是有可能阻止他们在phpMyAdmin中查看某些表吗?
如果没有控制它的MySQL权限(我不会想到会有),phpMyAdmin中是否有允许这样的配置?
我理解这里的一个解决方法是将表移动到一个它们未添加到的新数据库中。这不是我的应用程序的选项。
答案 0 :(得分:8)
是的,你可以在phpmyadmin中隐藏一个特定的数据库
为此,只需在您的网络服务器根目录中的 phpmyadmin 目录中打开 config.inc.php 或放置它。或搜索 config.inc.php
如果你想隐藏 information_schema 和 mysql ,请在以下后添加此行:
$cfg['Servers'][$i]['extension'] = 'mysql';
$cfg['Servers'][$i]['hide_db'] = '^information_schema|mysql$';
这就是它。
答案 1 :(得分:0)
您可以将表移动到另一个数据库,然后将用户帐户限制为仅使用公用表访问1数据库。试图修改phpmyadmin将是一个巨大的错误,用户可能只是编写一个自定义查询来访问表,这是一个死的简单黑客。
这必须在数据库方面完成,或者绝对没有意义。 SE-Postgresql是我所知道的唯一一个允许逐表权限的项目。这是唯一可以执行此操作的数据库,因为非常很少有人需要此功能。
答案 2 :(得分:0)
phpMyAdmin以某个MySQL用户身份连接到数据库。如果该用户对给定表没有任何权限,则phpMyAdmin用户无法访问该表。这当然适用于所有 mypMyAdmin用户。