You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DSE中REVOKE与RESTRICT命令差异及表级权限撤销失效问题咨询

DSE CQLSH中REVOKE与RESTRICT命令的区别及表级REVOKE失效原因

核心差异

  • REVOKE:仅能撤销直接授予角色的对象权限,无法处理从父级对象(如键空间)继承而来的权限。如果角色没有针对目标对象的直接授权,执行REVOKE会触发警告且无实际效果。
  • RESTRICT:用于覆盖角色从父级对象继承的权限,在子对象(如表)层面明确拒绝角色的指定权限,优先级高于继承权限,能直接限制角色对该子对象的访问。

场景失效原因解析

你遇到的问题完全符合DSE 6.8.x的权限继承逻辑:

  1. 首先执行grant select on keyspace Cycling to 'jane';,为Jane授予了Cycling键空间的SELECT权限,根据权限继承规则,Jane自动获得该键空间下所有表的SELECT权限。
  2. 当执行REVOKE select on cycling.cycled from 'jane';时,由于Jane的cycled表SELECT权限是从键空间继承的,并非直接授予的表级权限,REVOKE找不到可撤销的直接授权记录,因此弹出警告且无法生效,Jane仍能访问表数据。
  3. 而RESTRICT select on cycling.cycled TO 'jane';是在表层面添加了权限限制,直接覆盖了Jane从键空间继承的SELECT权限,所以能生效,限制她访问该表。

补充验证示例

如果先给Jane直接授予表级权限:

grant select on cycling.cycled to 'jane';

此时再执行REVOKE select on cycling.cycled from 'jane';就能成功撤销权限,因为这是针对表的直接授权,符合REVOKE的作用范围。

内容的提问来源于stack exchange,提问作者Pooja Nair

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 05:15:01