我想了解 Snowflake 中数据库对象未来所有权分配的角色。例如,假设我有一个名为“
DB
”的数据库和一个名为“Role_1
”的角色,该角色当前拥有所有数据库对象的所有权。
现在,我已将所有未来对象的所有权更改为“
Role_2
”。如果我创建新表或模式,我可以看到“Role_2
”是所有者,而对于现有表,所有者仍然是“Role_1
”。这是预期的结果。
但是,我很好奇是否有一种方法可以在创建对象之前确定对象的未来所有者。在上面的情况下,在创建新表或模式之前,我不知道 Role_2 将是所有者
您可以查看以下补助金来查看角色详情
SHOW FUTURE GRANTS TO ROLE <role_name> [ LIMIT <rows> ]
SHOW FUTURE GRANTS TO DATABASE ROLE <database_role_name>
SHOW FUTURE GRANTS IN SCHEMA { <schema_name> } [ LIMIT <rows> ]
SHOW FUTURE GRANTS IN DATABASE { <database_name> } [ LIMIT <rows> ]
另请注意,当对数据库和同一数据库中的架构的相同对象类型定义未来授权时,架构级别授权优先于数据库级别授权,并且数据库级别授权将被忽略。此行为适用于授予一个角色或不同角色的未来对象的权限
以下文章可以作为参考 https://community.snowflake.com/s/article/Behavior-of-future-grants-when-define-at-both-database-and-schema-level https://community.snowflake.com/s/article/Precedence-rule-for-future-grants
只要跑:
show future grants in database <database_name>;