使用 MySQL,如何为用户分配权限,以便他们可以创建和操作临时表,但不能更改永久表中的任何数据?
或者,是否有一种方法可以让具有 CREATE TEMPORARY TABLES 权限的用户创建临时表,以便他们对该表拥有完全权限?
答案1
我知道这并没有完全回答你的要求但是......
您可能希望使用针对此用户的权限 ACL(访问控制列表)来处理此问题。您希望通过表指定此用户可以选择的内容。接下来,使用 SELECT、CREATE 权限专门为此用户的目的创建一个数据库。
例如
GRANT SELECT ON dbname.tablename1 TO 'username'@'ip-or-hostname' IDENIFIED BY 'password';
GRANT SELECT ON dbname.tablename2 TO 'username'@'ip-or-hostname' IDENIFIED BY 'password';
GRANT SELECT ON dbname.tablename3 TO 'username'@'ip-or-hostname' IDENIFIED BY 'password';
GRANT CREATE,SELECT,DROP ON tmpdb.tablename1 TO 'username'@'ip-or-hostname' IDENIFIED BY 'password';
GRANT CREATE,SELECT,DROP ON tmpdb.tablename2 TO 'username'@'ip-or-hostname' IDENIFIED BY 'password';
GRANT CREATE,SELECT,DROP ON tmpdb.tablename3 TO 'username'@'ip-or-hostname' IDENIFIED BY 'password';