Catalog-linked database: USAGE privilege on CATALOG INTEGRATION and EXTERNAL VOLUME required for database owner role for all operations (Pending)

注意

此行为变更包含在 2025_07 捆绑包中。

有关捆绑包的当前状态,请参阅 捆绑包历史记录

此行为变更修改了访问目录关联数据库中表的要求。它影响目录关联数据库中的以下操作,这些操作需要访问数据库的目录集成和外部卷:

  • 数据库内对象的任何 DML 操作

  • 数据库内对象的任何 DDL 操作

  • 自动表格发现

  • 数据库中表的自动或手动刷新

  • 读取数据库中的表

变更前:

要访问目录关联数据库中的表,以下任一角色必须拥有外部卷的 USAGE 权限,并在拥有数据库目录集成的 USAGE 权限:

  • 拥有目录关联数据库 OWNERSHIP 权限的角色。

  • 拥有目录关联数据库内某表 OWNERSHIP 权限的角色。

  • 会话中处于激活状态的任意角色。

变更后:

要访问目录关联数据库中的表,以下角色必须拥有外部卷的 USAGE 权限,并在拥有数据库目录集成的 USAGE 权限:

  • 拥有目录关联数据库 OWNERSHIP 权限的角色。

例如,ALTER 命令仅在数据库所有者角色可以访问目录集成和外部卷时才会成功。如果尝试运行 ALTER 命令,但数据库所有者角色无法访问目录集成,将收到以下错误:

SQL access control error: Insufficient privileges to operate on integration '<name of catalog integration>'.
Copy

如果尝试运行 ALTER 命令,但数据库所有者角色无法访问外部卷,将收到以下错误:

SQL access control error: Insufficient privileges to operate on external volume '<name of external volume>').
Copy

如有必要,请向拥有目录关联数据库的角色授予所需的 USAGE 权限。

在以下示例中,data_engineer 角色拥有目录关联数据库的 OWNERSHIP 权限,并被授予必要的 USAGE 权限,以便访问目录关联数据库中的表。

GRANT USAGE ON INTEGRATION glueCatalogInt TO ROLE data_engineer;
GRANT USAGE ON EXTERNAL VOLUME exvol TO ROLE data_engineer;
Copy

此更改通过将所有管理操作集中到目录关联数据库的所有者,从而使目录关联数据库中 Apache Iceberg™ 表的访问管理更高效。

备注

如果您使用目录提供的凭证,则在更改前后都不需要拥有外部卷的 USAGE 权限。

参考:2114

语言: 中文