【问题标题】:Insufficient privileges to drop schema权限不足,无法删除架构
【发布时间】:2021-05-06 19:16:21
【问题描述】:

尝试授予角色访问权限以从 Snowflake 中的数据库中删除架构。我需要申请哪些补助金?

目前,如果我们尝试为用户执行此语句: DROP SCHEMA IF EXISTS 'schemaname_123'

我们得到这个错误: SQL access control error: Insufficient privileges to operate on schema 'schemaname_123'

角色当前在数据库上拥有这些授权 GRANT USAGE, MONITOR, CREATE SCHEMA ON DATABASE RAW TO ROLE INGESTION_ROLE;

【问题讨论】:

    标签: snowflake-cloud-data-platform snowflake-schema


    【解决方案1】:

    DROP 权限与对象所有者绑定。

    要删除架构,您必须使用对架构拥有所有权权限的角色。

    请注意,授予所有权实际上会将所有权转移给另一个角色。

    grant ownership on schema schemaname_123 to role INGESTION_ROLE;
    

    【讨论】:

    • 扩展“您必须使用对架构拥有所有权特权的角色”:您还可以使用一个角色,该角色是拥有表所有权的角色的成员(更高级别的角色)在层次结构中)
    • 因为角色已经拥有 CREATE TABLE 授权,所以更改 ownerhup 引发错误,直到我在语句末尾添加“撤销当前授权”:将架构 schemaname_123 上的所有权授予角色 INGESTION_ROLE 撤销当前授权