| Bug #119248 | CHECK TABLE command can be executed by users with the table-level GRANT OPTION privilege | ||
|---|---|---|---|
| Submitted: | 27 Oct 16:46 | Modified: | 27 Oct 16:54 |
| Reporter: | Jingzhou Fu | Email Updates: | |
| Status: | Open | Impact on me: | |
| Category: | MySQL Server: Security: Privileges | Severity: | S3 (Non-critical) |
| Version: | 9.4.0 | OS: | Any |
| Assigned to: | CPU Architecture: | Any | |
[27 Oct 16:46]
Jingzhou Fu
[27 Oct 16:54]
Jingzhou Fu
Another example (the user has the table-level CREATE privilege without GRANT OPTION): Login as the root user: DROP USER table_level_priv; CREATE USER table_level_priv; GRANT CREATE ON test.xxx TO table_level_priv; Login as the table_level_priv user: mysql> show grants; +--------------------------------------------------------+ | Grants for table_level_priv@% | +--------------------------------------------------------+ | GRANT USAGE ON *.* TO `table_level_priv`@`%` | | GRANT CREATE ON `test`.`xxx` TO `table_level_priv`@`%` | +--------------------------------------------------------+ 2 rows in set (0.000 sec) mysql> check table test.xxx; +----------+-------+----------+----------+ | Table | Op | Msg_type | Msg_text | +----------+-------+----------+----------+ | test.xxx | check | status | OK | +----------+-------+----------+----------+ 1 row in set (0.000 sec) The behavior of table-level and global-level is inconsistent, since the user with the global-level CREATE privilege cannot execute the CHECK TABLE command.
