配置掩蔽策略管理角色
PostgreSQL 列掩蔽扩展 pg_columnmask 支持您将掩蔽策略的管理委托给特定角色,而不是要求 rds_superuser 或表所有者权限。这样就可以更精细地控制谁可以创建、更改和删除掩蔽策略。
要配置将具有掩蔽策略管理权限的角色,请执行以下步骤:
-
创建策略管理员角色:作为
rds_superuser,创建一个负责管理掩蔽策略的新角色:CREATE ROLE mask_admin NOLOGIN; -
配置 PostgreSQL 参数:在自定义数据库集群参数组中,将
pgcolumnmask.policy_admin_rolname引擎配置参数设置为您创建的角色的名称:pgcolumnmask.policy_admin_rolname = mask_admin可以在数据库集群参数组中设置此引擎配置参数,并且不需要重启实例。有关更新参数的详细信息,请参阅在 Amazon Aurora 中修改数据库集群参数组中的参数。
-
将该角色授予用户。作为
rds_superuser,将mask_admin角色授予应能够管理掩蔽策略的用户:CREATE USER alice LOGIN; CREATE USER bob LOGIN; GRANT mask_admin TO alice, bob;此外,请确保用户对其将在其中管理掩蔽策略的架构拥有 USAGE 权限:
GRANT USAGE ON SCHEMA hr TO alice, bob;
现在,当用户 alice 和 bob 连接到数据库时,他们可以使用标准 pg_columnmask 扩展函数,在他们对架构拥有 USAGE 权限的所有架构中的所有表上创建、更改和删除掩蔽策略。