snowflake-cloud-data-platform - 在 Snowflake 中克隆角色或将授权复制到新角色
问题描述
我想创建一个新角色 (role_new),该角色最初对另一个角色 (role_old) 具有相同的授权。理想情况下,我将能够克隆一个角色。但是,似乎无法在 Snowflake 中克隆角色。我不想在这里使用继承的原因是因为我计划从 role_old 撤消一些授权,因此它们也会从 role_new 中撤消。
看起来没有办法将授权从一个角色复制到另一个角色。这个对吗?我们拥有的最接近的东西是继承。
有没有人遇到过类似的事情?关于如何处理这个问题的任何想法?
解决方案
您可以使用 SQL 生成器来执行此操作。
第 1 步:运行“表演”以获取角色的授权。
第 2 步:从 result_scan 运行 SQL 生成器以创建授权语句列表。
第 3 步:(可选)使用存储过程自动运行它们。
我没有测试这么多,但它看起来有点像这样:
show grants to role SYSADMIN;
select 'grant ' || "privilege" || ' on ' || "granted_on" || ' to MYNEWROLE;' as SQL_COMMAND from table(result_scan(last_query_id()));
如果您想运行所有生成的 SQL 语句,我编写了一个存储过程来专门为生成的命令执行此操作:
https://support.snowflake.net/s/article/Executing-Multiple-SQL-Statements-in-a-Stored-Procedure
推荐阅读
- javascript - 无法创建发布请求
- selenium - 如何并行执行多个测试套件?
- python - 在循环中向矩阵添加列
- mysql - 在 InnoDB 中使用 MAX 模拟自动增量的最快和最安全的方法
- react-native - React-native:onPress 动作正在阻止 Swipe 动作
- asp.net - 如何为弹出错误消息设置焦点?
- nativescript - 单击图像以更改该图像状态(启用或禁用图像颜色更改)
- javascript - 在具有 flex-direction: 行的 flexbox 中 Ngx-datatable 不会缩小
- ibm-cloud - Personality Insights:有速率限制吗?
- javascript - 在 React 中创建数独