Quyền tối thiểu cho OPTIMIZE TABLE và REPAIR TABLE trong MySQL
Các quyền tối thiểu cần thiết là SELECT và INSERT.
Cấp quyền cho người dùng
GRANT INSERT, SELECT ON ten_database.* TO 'ten_nguoi_dung'@'localhost';
Ví dụ tạo user và cấp quyền
mysql> create user 'Emma'@'localhost' identified by 'Emma123'; Query OK, 0 rows affected (0.26 sec)
mysql> grant insert,select on web.* to 'Emma'@'localhost'; Query OK, 0 rows affected (0.21 sec)
Kiểm tra quyền
mysql> show grants for 'Emma'@'localhost';
+-------------------------------------------------------+ | Grants for Emma@localhost | +-------------------------------------------------------+ | GRANT USAGE ON *.* TO `Emma`@`localhost` | | GRANT SELECT, INSERT ON `web`.* TO `Emma`@`localhost` | +-------------------------------------------------------+
Giải thích:
- SELECT: Cần để đọc cấu trúc và dữ liệu bảng khi optimize/repair
- INSERT: Cần thiết vì OPTIMIZE/REPAIR có thể tạo bảng tạm và chèn dữ liệu lại
- USAGE: Quyền mặc định (không có quyền nào thực sự)
Lưu ý: Không cần quyền DROP, ALTER, hay DELETE cho các thao tác này.