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

Snowflake执行GRANT ALTER ON TABLE报Invalid privilege ALTER问题问询

报错根因

触发该报错的常见根因有两类:

  • 对象类型不匹配:你语句中声明的对象类型为TABLE,但实际EDPINT_DEV.EDP_RAW.EDP_INGRESS_PARM的对象类型为视图、外部表、动态表等非表类型,Snowflake会判定ALTER权限对指定的对象类型无效。
  • 授权角色权限不足:你当前执行GRANT语句的角色不具备该表的授权权限,需拥有该表的OWNERSHIP权限、带WITH GRANT OPTION的ALTER权限,或对应schema/数据库的MANAGE GRANTS权限才能执行授权操作。
正确授权操作步骤
  1. 首先确认目标对象的实际类型,执行以下查询:
SELECT TABLE_TYPE 
FROM EDPINT_DEV.INFORMATION_SCHEMA.TABLES 
WHERE TABLE_SCHEMA = 'EDP_RAW' 
AND TABLE_NAME = 'EDP_INGRESS_PARM';
  1. 切换到具备授权资格的角色,示例:
USE ROLE ACCOUNTADMIN; -- 可替换为该表的所属Owner角色
  1. 根据第一步查到的对象类型,执行对应授权语句:
    • 如果对象类型为BASE TABLE,执行原语句即可:
    GRANT ALTER ON TABLE EDPINT_DEV.EDP_RAW.EDP_INGRESS_PARM TO ROLE EDPINT_DEV_ADMIN_SUPPORT;
    
    • 如果对象类型为VIEW,修改对象类型声明:
    GRANT ALTER ON VIEW EDPINT_DEV.EDP_RAW.EDP_INGRESS_PARM TO ROLE EDPINT_DEV_ADMIN_SUPPORT;
    
    • 如果对象类型为EXTERNAL TABLE,修改对象类型声明:
    GRANT ALTER ON EXTERNAL TABLE EDPINT_DEV.EDP_RAW.EDP_INGRESS_PARM TO ROLE EDPINT_DEV_ADMIN_SUPPORT;
    
  2. 执行以下语句验证授权是否生效:
SHOW GRANTS ON TABLE EDPINT_DEV.EDP_RAW.EDP_INGRESS_PARM; -- 对应修改为实际对象类型

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 05:45:06