我可以隐藏数据库,不写这行
$cfg['Servers'][$i]['hide_db'] = 'information_schema';
在phpmyadmin中的php.inc.php文件中。
可以通过像http://www.test.com/phpmyadmin/index.php?db=information_schema&token=3ba37ae1e41f6a10e4afc7c69b934bba这样的URL访问此数据库的内容
如何删除对information_schema数据库的完全访问?
5条答案
按热度按时间ozxc1zmp1#
请按照以下步骤操作:
1.打开phpMyAdmin,验证自己,如果需要的话
1.转到 * 设置>功能>数据库 *
1.将您想要隐藏的数据库列表放入 Hide databases 字段,用管道(
|
)分隔每个条目,即:information_schema|performance_schema|mysql|phpmyadmin
1.点击 * 应用 * 按钮
根据下面 KeshV 的评论,根据您的操作系统(Linux,Windows等)和环境配置,您可能需要有 config.inc.php 文件可写,以便在服务器或浏览器重新启动之间保持上述更改。
但是,在某些配置和某些 phpMyAdmin 版本中,上述设置直接存储在cookie中,即使在 * config.inc.php * 文件中添加注解也会保留。
w51jfk4q2#
您甚至可以使用管道分隔符隐藏多个数据库
mfuanj7w3#
如果你也想限制用户从你发布的URL访问information_schema,并且你对
hide_db
配置指令不满意,那么你可以在phpmyadmin的php.inc.php文件中添加以下行。p5cysglq4#
我会写这篇评论的最高投票的答案,但我还没有足够的声誉。
当指定多个数据库时,请记住它在RegEx规则下运行(如帮助所述)。因此,虽然可能不太可能,但将“information_schema|性能模式|mysql”也会隐藏任何包含这些字符串的数据库。
相反,将“^information_schema|性能模式|mysql$"。在正则表达式中,^表示字符串的开始,$表示字符串的结束。
这意味着您也可以通过部分字符串隐藏数据库。虽然您应该始终通过MySQL用户权限控制数据库访问,但您可以使用部分匹配隐藏数据库组。例如,如果您不希望所有测试数据库都可见,您可以在隐藏数据库字段中输入“^test_”,它将隐藏所有以test_开头的数据库。EG测试_123,测试_456。
qlfbtfca5#
将以下内容添加到
phpymyadmin
文件夹中的config.inc.php
文件: