授予对当前数据库的 MySQL 权限?

Grant MySQL permissions on current database?

我可以在 GRANT 语句中使用静态数据库名称授予权限。

GRANT SELECT,INSERT ON database_name.table_name TO 'username'@'localhost';

有没有一种方法可以在 GRANT 语句中动态设置数据库名称,以便授权是针对恰好是当前数据库的那个?

USE database_name;
GRANT SELECT,INSERT ON <what goes here?>.table_name TO 'username'@'localhost';

您无需指定任何内容。如果未指定数据库,MySQL 将采用 default database,这是在您 USE database_name 时设置的。来自 manual:

The USE db_name statement tells MySQL to use the db_name database as the default (current) database for subsequent statements.

GRANT 部分:

If you specify tbl_name rather than db_name.tbl_name, the statement applies to tbl_name in the default database.

所以你可以使用

GRANT SELECT,INSERT ON table_name TO 'username'@'localhost';