问题:
我怎样才能给新用户几乎所有的权限,但仍然保护一个或多个表/数据库不受它们的影响。
细节:
如果我有一个数据库,
life
还有三张桌子
passwords
friends
hobbies
如何授予该用户,例如,以下权限:
- 插入
- 更新
- 删除
- 创造
- 降低
- 改变
关于前三个,我将从以下内容开始:
GRANT INSERT, UPDATE, DELETE ON life.friends TO username@'localhost' IDENTIFIED BY 'password';
GRANT INSERT, UPDATE, DELETE ON life.hobbies TO username@'localhost' IDENTIFIED BY 'password';
但我对如何使用CREATE
and感到困惑DROP
。如果我像这样授予整个数据库的删除权限:
GRANT DROP ON life TO username@'localhost' IDENTIFIED BY 'password';
然后用户可以删除passwords
我不想要的表。我可以改为根据如下表格授予它:
GRANT DROP ON life.friends TO username@'localhost' IDENTIFIED BY 'password';
GRANT DROP ON life.hobbies TO username@'localhost' IDENTIFIED BY 'password';
但是,如果我授予CREATE
这样的权限会发生什么:
GRANT CREATE ON life TO username@'localhost' IDENTIFIED BY 'password';
这是否意味着用户甚至不能删除他/她创建的表?我的问题还与创建/删除数据库有关。如果我想允许用户创建和删除尽可能多的自己的数据库,而不是数据库,该life
怎么办?
passwords
我应该通过将表移动到另一个数据库来改变我的方法吗?
提前谢谢你。