我想只授予mysql中特定行的权限.table:messages cols:from,to,message
GRANT ALL ON db.messages TO 'jeffrey'@'localhost' WHERE messages.from = 'jeffrey' OR messages.to = 'jeffrey' ;
有了这样的东西,用户只能访问自己的消息.
你知道如何解决这个问题吗?
根据该GRANT命令,无法按行设置权限级别(表/列,是的 - 但不是单个行)。
您可以设置一个视图来处理此问题,并授予用户访问该视图的权限。
如下所示的视图应该为您提供基于当前用户的消息:
CREATE VIEW user_messages AS
SELECT *
FROM messages
WHERE
messages.from = user() OR messages.to = user();
Run Code Online (Sandbox Code Playgroud)
授予声明应该类似:
GRANT ALL ON db.user_messages TO 'jeffrey'@'localhost';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1071 次 |
| 最近记录: |