deny 语句的权限控制方式还挺实用的,尤其是在搞数据库安全的时候。语法看着有点复杂,但其实拆开来就两种用法:一个是直接否掉权限,一个是按对象细化权限。像deny select on table to user这种,就挺适合你不想给某人查某张表的场景。

deny 语句的语法其实和grant挺像,基本都能套用。常用格式有两个:一个是deny all to,一刀切;另一个是deny select, update on table to user,可以细粒度控制。语法虽然严谨,但你用熟了,写起来也挺顺手的。

嗯,还有一个点值得注意。deny 优先级高,它一旦生效,哪怕你给了grant权限,也会被它盖掉。所以用的时候得小心点,尤其团队多人操作时,建议你统一策略管理。

相关知识可以看看这些链接,搭配着用理解更清楚:

如果你经常管数据库用户权限,建议你在denyrevoke之间区分清楚,后者只是取消grant,但不会强制禁止,实战中差别还是蛮大的。