类SQL模型下DBA能否撤销用户转授的权限且不影响原授权方权限
结论
可以实现,该操作完全符合标准SQL权限模型的设计逻辑。
具体说明
- 权限在标准SQL体系中是独立记录的,每一条权限授予记录都会绑定「授予者」「被授予者」「权限类型」「操作对象」四个核心属性,不同被授予者的权限互不绑定。
- 你作为拥有全局权限的DBA,不需要通过收回User1的权限来移除User2的权限,直接针对User2执行撤销操作即可,该操作不会对User1的任何现有权限(包括SELECT权限和GRANT OPTION授权能力)产生任何影响。
操作示例
直接执行以下撤销命令即可:
REVOKE SELECT ON Table FROM User2;
常见误区说明
很多人容易混淆的级联撤销场景,仅在你收回User1的权限时才会触发:如果你执行REVOKE SELECT ON Table FROM User1 CASCADE;,系统才会同时收回User1的SELECT权限、移除User1的GRANT OPTION,并且级联删除所有User1对外授予的该表SELECT权限(包括User2拿到的权限)。只要你不主动针对User1执行撤销操作,就不会影响他的现有权限。
主流关系型数据库(MySQL、PostgreSQL、Oracle、SQL Server等)均遵循上述逻辑。
内容的提问来源于stack exchange,提问作者CuriousKid7
相关产品推荐
相关产品推荐

