Bug #94052 The description of "13.7.1.6 REVOKE Syntax" chapter is imperfect
Submitted: 25 Jan 2019 2:15 Modified: 28 Apr 2019 1:40
Reporter: JianJun Shi Email Updates:
Status: Not a Bug Impact on me:
None 
Category:MySQL Server: Documentation Severity:S4 (Feature request)
Version:5.7 OS:Linux
Assigned to: CPU Architecture:Any

[25 Jan 2019 2:15] JianJun Shi
Description:
"13.7.1.6 REVOKE Syntax" chapter in the "MySQL 5.7 Reference Manual" was describe as following:

REVOKE
priv_type [(column_list)]
[, priv_type [(column_list)]] ...
ON [object_type] priv_level
FROM user [, user] ...

REVOKE ALL [PRIVILEGES], GRANT OPTION
FROM user [, user] ...

The syntax of "REVOKE ALL" dos not include "ON [object_type] priv_level" syntax. But if we do not point on the "ON" syntax, such as "ON *.*". We will get back a error message from the "REVOKE ALL" syntax. 

How to repeat:
create database DCL_REVOKE_000;
use DCL_REVOKE_000;
create user if not exists 'REVOKE_ALL_001'@'%' identified by 'Baidu+123';
GRANT ALL PRIVILEGES ON *.* TO 'REVOKE_ALL_001'@'%';
show grants for 'REVOKE_ALL_001'@'%';
REVOKE ALL FROM 'REVOKE_ALL_001'@'%';
REVOKE ALL ON *.* FROM 'REVOKE_ALL_001'@'%';
[28 Apr 2019 1:40] Paul DuBois
re: "The syntax of "REVOKE ALL" dos not include "ON [object_type] priv_level" syntax."

The second syntax is REVOKE ALL, GRANT OPTION ...
The example does not use that syntax, it uses the first syntax.
That's why ON is needed.