【问题标题】:How to handle not enough permissions in php mysqli?如何处理 php mysqli 中的权限不足?
【发布时间】:2016-08-08 09:09:05
【问题描述】:

我在使用 PHP 和 mysqli 对象使用 MySQL 时遇到了一个奇怪的问题。我有用户,我用它来连接 MySQL,并且该用户有足够的权限来使用特定的数据库。一切正常。

但我正在尝试获取所有数据库的列表。用户没有权限。显然我看不到任何查询结果。但奇怪的是,我在 $mysqli->errno、$mysqli->error 中也没有任何内容(没有权限被拒绝或任何类型的错误!)而且我的 $result 不是 FALSE。所以在这种情况下,一切看起来好像查询执行得很好,并且服务器上没有数据库(当然这不是真的)。​​

问题不在于如何赋予用户执行 SHOW DATABASES 的权限。问题是:为什么我没有看到任何错误,而用户缺乏执行特定查询的权限?更进一步,如何妥善处理这种情况?

我使用了这段代码,但它不能处理这种情况,因为 $result 不是 FALSE - 它只是正常的 $result,但有空行

$result = $mysqli->query("SHOW DATABASES");
if($result === FALSE){
    echo 'We've got MySQL error! '.$mysqli->errno.':'.$mysqli->error);
}

感谢任何形式的建议!

【问题讨论】:

标签: php mysql mysqli error-handling user-permissions


【解决方案1】:

宾果!谢谢鸡蛋!

我的用户只能看到他有权访问的数据库。我想,如果他没有权限列出服务器上的数据库,他会出错。现在一切都清楚了!

【讨论】:

    猜你喜欢
    • 2019-07-31
    • 1970-01-01
    • 2012-10-16
    • 2014-05-18
    • 1970-01-01
    • 2015-04-21
    • 1970-01-01
    • 1970-01-01
    • 2016-01-12
    相关资源
    最近更新 更多