Bug #119188 Incorrect documentation: ALTER TABLE does not always require CREATE and INSERT privileges
Submitted: 18 Oct 9:10
Reporter: Zongrui Peng Email Updates:
Status: Open Impact on me:
None 
Category:MySQL Server: Documentation Severity:S3 (Non-critical)
Version:9.2.0 OS:Ubuntu (Ubuntu 20.04 LTS)
Assigned to: CPU Architecture:x86 (AMD EPYC 7742, 128 Cores, 2.25 GHz)

[18 Oct 9:10] Zongrui Peng
Description:
The MySQL documentation states: "To use ALTER TABLE, you need ALTER, CREATE, and INSERT privileges for the table. Renaming a table requires ALTER and DROP on the old table, ALTER, CREATE, and INSERT on the new table." (https://dev.mysql.com/doc/refman/9.2/en/alter-table.html)
In practice, however, ALTER TABLE statements do not always require CREATE and INSERT privileges. This indicates an inconsistency between the official documentation and MySQL's actual implementation.

How to repeat:
-- connect as root
CREATE DATABASE test;
CREATE TABLE test.employees(x INT);
CREATE USER foo;
GRANT ALTER ON test.employees TO foo;

-- connect as foo
ALTER TABLE test.employees ADD COLUMN birth_date DATE;
-- Query OK