在MySQL中向用户授予自定义权限

3
我该如何创建一个具有特定用户权限的用户呢?例如,我有一个名为mydb的数据库,它包含以下表:users, contacts, messages,我想创建一个名为app_admin的用户,并赋予以下权限:
  • 创建、更新和删除表
  • 从表中插入、更新、选择和删除数据
为了做到这一点,我需要做什么?是否可以在一行中完成?
我知道如何在一行中授予大多数权限并创建用户(感谢Richard St-Cyr):
GRANT ALTER, CREATE, DELETE, DROP, INSERT, SELECT, UPDATE ON db.* TO 'app_admin'@localhost IDENTIFIED BY '_my_securePass';
FLUSH PRIVILEGES;

但我不希望用户能够删除数据库。

2个回答

1

是的,你可以。同时尝试这个例子。

GRANT ALL PRIVILEGES ON mydb.* TO 'app_admin'@'%' WITH GRANT OPTION

0

是的,可以通过指定权限列表而不是ALL来完成1行操作。请参见http://dev.mysql.com/doc/refman/5.7/en/grant.html以获取权限列表。

GRANT ALTER, CREATE, DELETE, DROP, INSERT, SELECT, UPDATE ON db.* TO 'app_admin'@localhost IDENTIFIED BY '_my_securePass';
FLUSH PRIVILEGES;

你想用我列出的权限来做一个示例吗? - Jonathan Solorzano
“DROP”不会让用户删除数据库吗? - Jonathan Solorzano
没错。用户可以DROP数据库或数据库中的任何对象。DROP用于数据库和其中的对象。 - Richard St-Cyr
但我不希望用户能够删除数据库,只想删除表格... 我该怎么做? - Jonathan Solorzano
除了在特定表上授予权限,我不知道你如何实现这一点。也许其他人会给你答案。 - Richard St-Cyr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接