【问题标题】:How to hide information_schema database from phpmyadmin如何从 phpmyadmin 隐藏 information_schema 数据库
【发布时间】:2012-08-17 18:40:54
【问题描述】:

我可以隐藏数据库以防止写入此行

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

在 config.inc.php 文件 pf phpmyadmin.

可以通过像http://www.test.com/phpmyadmin/index.php?db=information_schema&token=3ba37ae1e41f6a10e4afc7c69b934bba这样的url访问这个数据库的内容

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

【问题讨论】:

    标签: phpmyadmin wamp


    【解决方案1】:

    按照以下步骤操作:

    1. 如果需要,打开 phpMyAdmin,进行身份验证
    2. 转到设置 > 功能 > 数据库
    3. 将要隐藏的数据库列表放入隐藏数据库字段,用管道分隔每个条目(|),即:information_schema|performance_schema|mysql|phpmyadmin
    4. 点击应用按钮

    根据下面 KeshV 的 cmets,根据您的操作系统(Linux、Windows 等)和环境配置,您可能需要 config.inc.php文件可写,以便在服务器或浏览器重新启动之间保持上述更改。

    但是,在某些配置和某些 phpMyAdmin 版本中,上述设置直接存储在 cookie 中,即使在 config.inc.php 文件中添加了注释,也会保留这些设置.

    【讨论】:

    • 如果 config.inc.php 不可写,它将无法工作,因此在注销时将无法生存
    【解决方案2】:

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

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

    【讨论】:

    • 这是完美的答案!!
    • 对于那些不知道在哪里执行此操作的人,请转到 config.inc.php 文件并将此行放在末尾并刷新 phpmyadmin 页面以查看更改。
    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

      我会在投票率最高的答案上写此评论,但我还没有足够的声誉。

      当指定多个数据库时,请记住它在 RegEx 规则下运行(如帮助所述)。因此,虽然这不太可能,但放置“information_schema|performance_schema|mysql”也会隐藏任何包含这些字符串的数据库。

      改为“^information_schema|performance_schema|mysql$”。在正则表达式中,^ 表示字符串的开头,$ 表示结尾。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-02
        • 1970-01-01
        • 1970-01-01
        • 2019-03-25
        • 2020-02-24
        • 2016-11-11
        • 1970-01-01
        • 2019-08-24
        相关资源
        最近更新 更多