首页 > 解决方案 > 如何撤销对带有双引号的用户的授权

问题描述

我在 mariadb 数据库中错误地创建并授予了带有双引号的用户权限。

MariaDB [mysql]> select * from information_schema.user_privileges;

+--------------------------------------+---------------+-------------------------+--------------+
| GRANTEE                              | TABLE_CATALOG | PRIVILEGE_TYPE          | IS_GRANTABLE |
+--------------------------------------+---------------+-------------------------+--------------+
  ...                                                                                            
| '"bob@grr.la"'@'%'                   | def           | SELECT                  | NO           |
| '"bob@grr.la"'@'%'                   | def           | INSERT                  | NO           |
| '"bob@grr.la"'@'%'                   | def           | UPDATE                  | NO           |
| '"bob@grr.la"'@'%'                   | def           | DELETE                  | NO           |
  ...
+--------------------------------------+---------------+-------------------------+--------------+

我尝试了许多不同的转义组合,但是当我尝试撤销该用户的权限时,我似乎无法针对该用户。

我试过了:

revoke all, grant option from '"bob@grr.la"'@'%';
revoke all, grant option from "bob@grr.la"@'%';
revoke all, grant option from \"bob@grr.la\"@'%';
revoke all, grant option from "%bob%"@'%';
revoke all, grant option from '%bob%'@'%';

这些都不起作用。是什么赋予了?

标签: mysqlmariadb

解决方案


您需要转义双引号,例如:

MariaDB [(none)]> create user '\"bob@grr.la\"'@'%';
Query OK, 0 rows affected (0.01 sec)

MariaDB [(none)]> grant all on test.* to '\"bob@grr.la\"'@'%';
Query OK, 0 rows affected (0.01 sec)

MariaDB [(none)]> revoke all privileges, grant option from '\"bob@grr.la\"'@'%';
Query OK, 0 rows affected (0.01 sec)

推荐阅读