我试图将数据库的所有特权授予雪花中的一个角色。
这包括读取、创建、更新和删除架构、阶段、存储集成、表等的所有功能。
还应该包括在数据库中创建的任何未来对象。
grant all on database test to developer;这只授予数据库的视图,而不是数据库中的架构或任何其他对象。
发布于 2022-06-17 07:53:16
不幸的是,在雪花中,没有这样的命令可以通过一个命令授予所有访问权限。
即使使用所有特权命令,也必须对对象授予一个使用特权才能生效。
模式特权文档中也提到了这一点。
对于未来的授权,您可以尝试在模式和数据库级别上执行以下命令
模式级
grant usage on database SAMPLEDATABASE1 to role testrole12;
grant usage on schema SAMPLEDATABASE1.TEST to role testrole12;
grant select on future tables in schema SAMPLEDATABASE1.TEST to role testrole12;
grant role testrole12 to user SUJANT3;数据库级
grant usage on database SAMPLEDATABASE1 to role testrole12;
grant usage on future schemas in database SAMPLEDATABASE1 to role testrole12;
grant select on future tables in database SAMPLEDATABASE1 to role testrole12;
grant role testrole12 to user SUJANT3;发布于 2022-06-17 06:12:25
没有一个单独的命令可以影响数据库中的所有对象,但是您可以运行以下SQL的每个对象:
GRANT ALL ON ALL schemas in database <DB> TO ROLE <role>;
GRANT ALL ON ALL TABLES IN SCHEMA <db.schema> TO ROLE <role>; 同样,对于未来的赠款:
grant all on future schemas in database <DB> TO ROLE <role>;
grant all on future tables in schema <db.schema> to ROLE <role>;这也可以扩展到视图和其他对象。
发布于 2022-06-18 00:53:36
听起来你想批准所有权吗?每个对象只能有一个所有者,所以我建议您只在适当的时候使用它:
GRANT OWNERSHIP ON DATABASE TEST
TO DEVELOPER
COPY CURRENT GRANTS
;注意:复制当前授权保留当前特权,但所有权转移除外。否则,所有现有特权都将被取消。
https://stackoverflow.com/questions/72654388
复制相似问题