目前,我在RDS中拥有这样的主用户
'master'@'%'
我已经创建了这样的用户
'new_user'@'%'
到目前为止,我可以授予该用户这些特权
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'new_user'@'%' IDENTIFIED BY '1234' WITH GRANT OPTION
是否可以授予这些权限,但限制为
DELETE PRIVILEGE?
在特定的表上,例如tblCart
就像我可以删除除表tblCart
之外的所有表吗?
答案 0 :(得分:2)
旧答案是错误的。由于您未定义DELETE ON *.tblCart
,因此无法使用。您将必须全部撤消DELETE并手动添加它们。
REVOKE DELETE ON *.* FROM `new_user`@`%`;
GRANT DELETE ON <db>.<tbl1> TO `new_user`@`%`;
...
GRANT DELETE ON <db>.<tblN> TO `new_user`@`%`;
有关如何为所有表生成语句的信息,请参见this post。
旧答案
按照您的喜好方式应用授予后,您可以像这样从tblCart
撤消权限:
REVOKE DELETE ON *.`tblCart` FROM `new_user`@`%`;
这将保留所有表的所有权限,但删除权限则会从tblCart
中删除行。