【发布时间】:2020-03-18 18:19:55
【问题描述】:
我们需要用户将他们的表从他们的个人模式 (user_db.username) 移动到托管模式 (userdb.groupname),它为选择访问提供了一组预定义的权限。在移动桌子时,我们需要完成以下工作:
- 将表移出旧模式
- 删除旧的选择授权
- 应用托管架构中的新授权
我已经查看了 Alter table .. rename to.. 文档,虽然这似乎可以移动表格,但它会保留旧的授权而不应用新的授权。
在 Snowflake SQL 中是否有选项或其他方法可以做到这一点?
【问题讨论】:
-
您可以执行 ALTER 表选项,然后立即撤销/授予权限吗?我猜每个用户都拥有该表并正在移动它,因此您可能可以给每个用户一个他们执行的 SQL 脚本。如果我在要求中遗漏了什么,请告诉我。
-
您可能还需要考虑将原始表的克隆创建到新架构中。然后,此克隆将继承托管模式的 ON FUTURE 授权。然后,您可以简单地删除原始表。
-
Suzy,我们有数百个表要移动,所以我们正在尽量减少 # SQL 语句。
-
迈克,谢谢!这将很好地工作。
标签: snowflake-cloud-data-platform alter-table sql-revoke