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

Snowflake权限配置:测试角色继承管理员权限,仅操作指定Schema并保留对象所有权

问题解决方案

失败原因分析

  • 直接撤销用户tester1的权限无效,因为tester1的权限继承自testerrole,而testerrole已被授予adminrole(DEMODB所有Schema的所有者),testerrole会自动继承adminrole的所有权限,包括访问PRDSCHM、QASSCHM的权限。
  • 权限操作应针对角色而非直接用户,同时需要处理角色继承带来的权限覆盖问题。

修正后的完整脚本

-- 确保adminrole的所有者权限(保留原设置)
grant usage on database DEMODB to role adminrole;
grant all on database DEMODB to role adminrole;

-- 配置testerrole的核心权限:DEVSCHM的读写+创建对象权限
grant usage on database DEMODB to role testerrole;
grant select,insert,update,delete,create on schema "DEMODB"."DEVSCHM" to role testerrole;

-- 将testerrole加入adminrole,确保新创建对象归属adminrole
grant role adminrole to testerrole;

-- 显式撤销testerrole对其他Schema的所有权限(覆盖继承的adminrole权限)
revoke all privileges on schema "DEMODB"."PRDSCHM" from role testerrole;
revoke all privileges on schema "DEMODB"."QASSCHM" from role testerrole;

-- 将testerrole授予用户tester1
grant role testerrole to user tester1;

关键说明

  • 权限顺序调整:先配置testerrole的DEVSCHM权限,再加入adminrole,避免继承的权限覆盖自定义设置。
  • 针对角色撤销权限:直接对testerrole执行撤销操作,而非用户tester1,因为用户的权限完全来自角色继承。
  • 添加create权限:在DEVSCHM的授权中加入create,满足“可创建对象”的需求。
  • 使用all privileges撤销:确保彻底移除testerrole对目标Schema的所有继承权限,包括usage、读写等。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 06:18:24