Realm(领域)

师成师成· 更新于 2026-09-29· 阅读 2 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

Realm(领域)

本页说明什么是 realm,以及它在 Polaris 中的用途。

它是什么?

Realm 在 Polaris 中充当目录(catalog)系统内的逻辑分区机制。这种隔离支持多租户,使不同的团队、环境或组织能够在同一套 Polaris 部署中独立运行。

关键特性

隔离性: 每个 realm 封装各自的资源集合,确保一个 realm 中的操作和策略不会影响其他 realm。

认证上下文: 配置 Polaris 时,主体(principal)的凭据会与特定的 realm 关联,从而使不同 realm 之间的安全问题彼此分离。

配置范围: realm 标识符用于各种配置中,例如连接字符串、功能配置等。

示例如下:

jdbc:postgresql://localhost:5432/{realm}

这样可确保每个 realm 的数据分开存储。

它在系统中如何使用?

RealmContext(领域上下文): 这是一个关键概念,用于标识并解析操作所处的上下文。例如在 DefaultRealmContextResolver 中,realm 从请求头中解析得出,随后基于解析出的 realm 标识符执行操作。

认证与授权: 例如在 DefaultAuthenticator 中,RealmContext 用于提供当前安全域的上下文,进而获取正确的 PolarisMetastoreManager——该管理器负责管理所有 Polaris 实体以及与授权相关的授权记录元数据。

隔离性: 在 JdbcBasePersistenceImpl 等类中,来自 realm 上下文的 realm id 作为主键的一部分,用于在(同一数据库实例内)隔离地管理各 realm 的实体。

评论

登录后参与评论

正在加载评论…