Bug #119188 Incorrect documentation: ALTER TABLE does not always require CREATE and INSERT privileges

Submitted: 18 Oct 2025 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 2025 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

Portions of this website are copyright © 2001, 2002 The PHP Group

Page generated in 0.048 sec. using MySQL 8.4.7-u6-cloud

Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.