我可以在GRANT声明静态数据库名授予权限。
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:
default database
USE database_name
该USE DB_NAME语句告诉MySQL使用db_name的数据库作为默认(当前)数据库后续语句。
并从GRANT部分:
如果指定了tbl_name,而不是的db_name.tbl_name,声明适用于默认的数据库为tbl_name。
所以,你可以只使用
GRANT SELECT,INSERT ON table_name TO 'username'@'localhost';