如何更改 Snowflake 数据库克隆中所有对象的所有者?
How can I change the owner of all objects in a Snowflake database clone?
作为我们开发生命周期的一部分,我们克隆我们的产品数据库以替换我们的开发数据库,下一步是将正确的权限应用于新克隆的数据库,因为我们的开发人员需要完全访问开发环境,而他们不应该没有对 prod 环境的写入权限。
所以我需要更改开发数据库中所有对象的所有者,以允许开发人员替换和更新现有的表、视图、过程等。到目前为止,我一直无法找到如何实现这一点。
克隆数据库后,使用 GRANT OWNERSHIP(另见示例)函数使用 COPY CURRENT GRANTS
子句将所有权转移给另一个角色,例如:
GRANT OWNERSHIP ON DATABASE mydb TO ROLE developer COPY CURRENT GRANTS;
GRANT OWNERSHIP ON ALL SCHEMAS IN DATABASE mydb TO ROLE developer COPY CURRENT GRANTS;
GRANT OWNERSHIP ON ALL TABLES IN DATABASE mydb TO ROLE developer COPY CURRENT GRANTS;
GRANT OWNERSHIP ON ALL VIEWS IN DATABASE mydb TO ROLE developer COPY CURRENT GRANTS;
作为我们开发生命周期的一部分,我们克隆我们的产品数据库以替换我们的开发数据库,下一步是将正确的权限应用于新克隆的数据库,因为我们的开发人员需要完全访问开发环境,而他们不应该没有对 prod 环境的写入权限。 所以我需要更改开发数据库中所有对象的所有者,以允许开发人员替换和更新现有的表、视图、过程等。到目前为止,我一直无法找到如何实现这一点。
克隆数据库后,使用 GRANT OWNERSHIP(另见示例)函数使用 COPY CURRENT GRANTS
子句将所有权转移给另一个角色,例如:
GRANT OWNERSHIP ON DATABASE mydb TO ROLE developer COPY CURRENT GRANTS;
GRANT OWNERSHIP ON ALL SCHEMAS IN DATABASE mydb TO ROLE developer COPY CURRENT GRANTS;
GRANT OWNERSHIP ON ALL TABLES IN DATABASE mydb TO ROLE developer COPY CURRENT GRANTS;
GRANT OWNERSHIP ON ALL VIEWS IN DATABASE mydb TO ROLE developer COPY CURRENT GRANTS;