如何从phpmyadmin隐藏information_schema数据库

时间:2012-08-22 10:50:18

标签: phpmyadmin wamp

我可以隐藏数据库来写这一行

$cfg['Servers'][$i]['hide_db'] = 'information_schema'; 

在config.inc.php文件中pf phpmyadmin。

可以通过http://www.test.com/phpmyadmin/index.php?db=information_schema&token=3ba37ae1e41f6a10e4afc7c69b934bba

等网址访问此数据库的内容

如何删除information_schema数据库的完整访问权限?

4 个答案:

答案 0 :(得分:16)

您甚至可以使用管道分隔符隐藏多个DB

$cfg['Servers'][$i]['hide_db'] = 'information_schema|performance_schema|mysql';

答案 1 :(得分:11)

我在外部目录中安装了phpmyadmin,但这些方法对我不起作用。

打开phpmyadmin

Settings > Features > General > database > Hide databases

输入您要隐藏的数据库,如下所示

information_schema|performance_schema|mysql

答案 2 :(得分:5)

如果您还想限制用户从您发布的网址访问information_schema并且您对hide_db配置指令不满意,那么您可以在phpmyadmin的config.inc.php文件中添加以下行

if($_GET['db'] == 'information_schema')exit;

答案 3 :(得分:0)

我在最高评价的答案中写下这条评论,但我还没有足够的声誉。

指定多个数据库时,请记住它在RegEx规则下运行(作为帮助状态)。所以虽然可能不太可能,但是把信息放入" information_schema | performance_schema | mysql"还会隐藏包含这些字符串的任何数据库。

相反,把" ^ information_schema | performance_schema | mysql $"。在正则表达式中,^表示字符串的开头,$表示结束。

这意味着您还可以通过部分字符串隐藏数据库。虽然您应始终通过MySQL用户权限控制数据库访问,但您可以使用部分匹配来隐藏数据库组。例如,如果您不希望所有测试数据库都可见,您可以将" ^ test _"在隐藏数据库字段中,它将隐藏以test_开头的所有数据库。 EG test_123,test_456。