gpt4 book ai didi

mysql - 无法授予 MySQL 用户对 information_schema 数据库的访问权限

转载 作者:行者123 更新时间:2023-12-04 17:30:12 25 4
gpt4 key购买 nike

我正在创建一个 Laravel 应用程序并在全新安装的 Ubuntu 19.10.03 上以生产模式对其进行测试。全新 LAMP 安装(PHP 7.3、MySQL 8.0.19-0)。

我可以创建一个新数据库和一个对数据库具有完全访问权限的新用户,但 Laravel 要求用户也具有来自 'information_schema' 数据库的 SELECT 选项。这是我正在使用的过程:

$ sudo mysql

mysql> CREATE DATABASE IF NOT EXISTS `my-laravel-database`;
mysql> CREATE USER IF NOT EXISTS 'laravelUser'@'localhost' IDENTIFIED WITH mysql_native_password BY 'myPass';
mysql> GRANT ALL PRIVILEGES ON `my-laravel-database`.* TO 'laravelUser'@'localhost' WITH GRANT OPTION;
mysql> GRANT SELECT ON `information_schema`.* TO 'laravelUser'@'localhost';

最后一个命令总是返回
ERROR 1044 (4200): Access denied for user 'root'@'localhost' to database 'information_schema'

我试过运行 mysql_secure_installation命令设置root密码,这没有帮助。我可以以 root 用户身份运行该应用程序,但我不想在生产中这样做。

我还尝试了仅安装了 LAMP 服务的全新 Ubuntu 安装。

最佳答案

我在与这个问题无关的事情上浪费了 DAYS 天。答案是 in the MySQL manual :

For most INFORMATION_SCHEMA tables, each MySQL user has the right to access them, but can see only the rows in the tables that correspond to objects for which the user has the proper access privileges.


所以你不能授予 INFORMATION_SCHEMA 的权限直接,您必须授予对您自己模式的表的权限,并且当您这样做时,这些表将开始显示在 INFORMATION_SCHEMA查询。
不幸的是,因为我希望有一个能够看到 INFORMATION_SCHEMA 的用户,但不是实际表格的内容,而且似乎没有办法做到这一点。

关于mysql - 无法授予 MySQL 用户对 information_schema 数据库的访问权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60499772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com