Snowflake中roletest角色修改表列权限不足问题求助
解决方案:Snowflake表列修改权限问题
问题根源
修改表列属性(如DROP NOT NULL)需要ALTER权限,你之前给roletest的表级权限中未包含该权限;若要转移所有权,需先处理该表已存在的其他角色依赖权限。
方案1:直接授予ALTER权限(无需转移所有权)
使用accountadmin角色执行授权,让roletest获得修改表结构的权限:
USE ROLE accountadmin; GRANT ALTER ON TABLE "DBTEST"."SCHEMATEST"."testtable" TO ROLE roletest;
授权完成后,切换回roletest角色重新执行修改语句:
USE ROLE roletest; USE WAREHOUSE roletest_wh; ALTER TABLE "DBTEST"."SCHEMATEST"."testtable" ALTER COLUMN c1 DROP NOT NULL;
方案2:转移表所有权给roletest(处理依赖权限)
若需要让roletest成为表的所有者,使用accountadmin角色执行带REVOKE CURRENT GRANTS选项的命令,自动撤销所有依赖的权限授予:
USE ROLE accountadmin; GRANT OWNERSHIP ON "DBTEST"."SCHEMATEST"."testtable" TO ROLE roletest REVOKE CURRENT GRANTS;
完成后,roletest作为表所有者,拥有所有表操作权限,可直接修改列属性。
可选:查看当前表的权限授予
若需确认依赖权限的具体角色,可执行:
USE ROLE accountadmin; SHOW GRANTS ON TABLE "DBTEST"."SCHEMATEST"."testtable";
内容的提问来源于stack exchange,提问作者Santhosh
相关产品推荐
相关产品推荐

