我如何知道 MySQL 用户拥有最大的权限?

PJ *_*net 4 mysql root

一点背景知识:不久前,我用“me”替换了“root”用户,但忘记授予“me”对“mysql”表的访问权限。今晚我使用“--skip-grant-tables”运行“安全”模式,这帮助我再次获得访问权限:

UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='me';

但是,我想知道这是否授予“我”尽可能的最大特权?我只是想确保“我”拥有完全访问权限。我不想从现在起一年后发现这个用户缺乏我在危机期间需要的一些很棒的超能力。

这尤其让我摸不着头脑:

mysql> grant all on *.* to me@localhost with grant option;
Query OK, 0 rows affected (0.11 sec)
Run Code Online (Sandbox Code Playgroud)

0 行受到影响是因为“我”已经拥有所有权限还是我做错了什么?

che*_*cho 5

尝试这个:

SELECT * FROM `information_schema`.`SCHEMA_PRIVILEGES`;
Run Code Online (Sandbox Code Playgroud)

或者

SELECT * FROM `information_schema`.`USER_PRIVILEGES`;
Run Code Online (Sandbox Code Playgroud)

更改您的用户的 root 用户...

SELECT Host,    Select_priv,    Insert_priv,    Update_priv,    Delete_priv     FROM mysql.user WHERE USER = "root";
SELECT Host,    Create_priv,    Drop_priv,  Reload_priv,    Shutdown_priv   FROM mysql.user WHERE USER = "root";
SELECT Host,    Process_priv,   File_priv,  Grant_priv,     References_priv FROM mysql.user WHERE USER = "root";
SELECT Host,    Index_priv, Alter_priv, Show_db_priv,   Super_priv  FROM mysql.user WHERE USER = "root";
SELECT Host,    Create_tmp_table_priv,  Lock_tables_priv,   Execute_priv    FROM mysql.user WHERE USER = "root";
SELECT Host,    Repl_slave_priv,    Repl_client_priv,   Create_view_priv    FROM mysql.user WHERE USER = "root";
SELECT Host,    Show_view_priv,     Create_routine_priv,    Alter_routine_priv  FROM mysql.user WHERE USER = "root";
SELECT Host,    Create_user_priv,   Event_priv,         Trigger_priv,   Create_tablespace_priv  FROM mysql.user WHERE USER = "root";
SELECT Host,        ssl_type    , ssl_cipher    , x509_issuer,  x509_subject,   max_questions           FROM mysql.user WHERE USER = "root";
SELECT Host, max_updates, max_connections,      max_user_connections        FROM mysql.user WHERE USER = "root";
SELECT Host, plugin, authentication_string  FROM mysql.user WHERE USER = "root";
Run Code Online (Sandbox Code Playgroud)