作为我们开发生命周期的一部分,我们克隆产品数据库来替换我们的开发数据库,下一步是将正确的权限应用于新克隆的数据库,因为我们的开发人员需要完全访问开发环境,而他们不应该拥有对 prod 环境的写访问权限。 因此,我需要更改开发数据库中所有对象的所有者,以允许开发人员替换和更新现有的表、 View 、过程等。到目前为止,我一直无法找到如何实现这一点。
最佳答案
克隆数据库后,使用 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;
关于snowflake-cloud-data-platform - 如何更改 Snowflake 数据库克隆中所有对象的所有者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71298295/