如何处理 php mysqli 中权限不足的问题?
How to handle not enough permissions in php mysqli?
我在使用 MySQL 和 PHP 以及 mysqli 对象时遇到了一个奇怪的问题。我有用户,我用它来连接到 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);
}
感谢任何建议!
宾果!谢谢 eggyal!
我的用户只能看到他有权访问的数据库。我想,如果他没有在服务器上列出数据库的权限,他会出错。现在一切都清楚了!
我在使用 MySQL 和 PHP 以及 mysqli 对象时遇到了一个奇怪的问题。我有用户,我用它来连接到 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);
}
感谢任何建议!
宾果!谢谢 eggyal!
我的用户只能看到他有权访问的数据库。我想,如果他没有在服务器上列出数据库的权限,他会出错。现在一切都清楚了!