当 GRANT ALL 停止为 root@localhost 工作时如何解除 MariaDB 11.3.2

问题描述 投票:0回答:1

我有一个应用程序在启动时运行以下 SQL 命令(作为 root 用户):

GRANT ALL PRIVILEGES ON `pcom`.* TO 'pcom'@'localhost';

这已经运行了 10 多年。

升级到 MariaDB 11.3.2 (MacOS Homebrew) 后,它不再起作用,而是返回此错误:

ERROR 1044 (42000): Access denied for user 'root'@'localhost' to database 'pcom'

认为我已经成为MariaDB bug MDEV-33554或类似问题的受害者。

但是,我不知道如何解决这个问题。

有谁知道神奇的 SQL 命令可以让 MariaDB 摆脱这种情况吗??

以下是 MariaDB 报告的补助金

'root'@'localhost'

MariaDB [(none)]> SHOW GRANTS for 'root'@'localhost' \G
*************************** 1. row ***************************
Grants for root@localhost: GRANT SELECT, INSERT, UPDATE, DELETE,
CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX,
ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES,
EXECUTE, REPLICATION SLAVE, BINLOG MONITOR, CREATE VIEW, SHOW VIEW,
CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER,
CREATE TABLESPACE, DELETE HISTORY, SET USER, FEDERATED ADMIN,
CONNECTION ADMIN, READ_ONLY ADMIN, REPLICATION SLAVE ADMIN,
REPLICATION MASTER ADMIN, BINLOG ADMIN, BINLOG REPLAY,
SLAVE MONITOR ON *.* TO `root`@`localhost` WITH GRANT OPTION
*************************** 2. row ***************************
Grants for root@localhost: GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
2 rows in set (0.000 sec)
mariadb
1个回答
0
投票

缺少的权限是 SHOW CREATE ROUTINE

要收回它:

  1. 添加 skip-grant-tables 作为配置选项后启动服务器。

  2. mariadb
    提示下:

MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> GRANT ALL ON *.* TO root@localhost WITH GRANT OPTION;
Query OK, 0 rows affected (0.001 sec)
  1. 从配置选项中删除
    skip-grant-tables

对可用性错误表示歉意。根据错误报告,这不会影响跳过 11.3 版本的用户。

© www.soinside.com 2019 - 2024. All rights reserved.