RLS 策略所有权和管理
作为超级用户、安全管理员或具有 sys:secadmin 角色的用户,您可以创建、修改或管理表的所有 RLS 策略。在对象级别,您可以打开或关闭行级别安全性,而无需修改表的架构定义。
要开始使用行级别安全性,以下是您可以使用的 SQL 语句:
使用 ALTER TABLE 语句可以打开或关闭表上的 RLS。有关更多信息,请参阅 ALTER TABLE。
使用 CREATE RLS POLICY 语句可为一个或多个表创建安全策略,并在该策略中指定一个或多个用户或角色。
有关更多信息,请参阅 CREATE RLS POLICY。
使用 ALTER RLS POLICY 语句更改策略,例如更改策略定义。您可以对多个表或视图使用相同的策略。
有关更多信息,请参阅 ALTER RLS POLICY。
使用 ATTACH RLS POLICY 语句可将策略附加到一个或多个关系、一个或多个用户,或者角色。
有关更多信息,请参阅 ATTACH RLS POLICY 。
使用 DETACH RLS POLICY 语句可将策略与一个或多个关系、一个或多个用户或者角色分离。
有关更多信息,请参阅 DETACH RLS POLICY 。
使用 DROP RLS POLICY 语句可以删除策略。
有关更多信息,请参阅 DROP RLS POLICY 。
使用 GRANT 和 REVOKE 语句可以明确授予和撤消对引用查找表的 RLS 策略的 SELECT 权限。有关更多信息,请参阅GRANT 和REVOKE。
要监控创建的策略,sys:secadmin 可以查看 SVV_RLS_POLICY 和 SVV_RLS_ATTACHED_POLICY。
要列出受 RLS 保护的关系,sys:secadmin 可以查看 SVV_RLS_RELATION。
要跟踪 RLS 策略在引用受 RLS 保护的关系的查询中的应用情况,超级用户、sys:operator 或任何拥有系统权限 ACCESS SYSTEM TABLE 的用户均可查看 SVV_RLS_APPLIED_POLICY 。请注意,默认情况下不会向 sys:secadmin 授予这些权限。
要查询附加了 RLS 策略的表,但看不到这些表,可以向任何用户授予 IGNORE RLS 权限。作为超级用户或 sys:secadmin 的用户将被自动授予 IGNORE RLS 权限。有关更多信息,请参阅 GRANT。
要解释 EXPLAIN 计划中查询的 RLS 策略筛选器以解决与 RLS 相关的查询,您可以向任何用户授予 EXPLAIN RLS 权限。有关更多信息,请参阅GRANT 和EXPLAIN。