从 2025 年 11 月 1 日起,Amazon Redshift 将不再支持创建新的 Python UDF。如果您想要使用 Python UDF,请在该日期之前创建 UDF。现有的 Python UDF 将继续正常运行。有关更多信息,请参阅博客文章
ATTACH RLS POLICY
将表上的行级别安全性策略附加到一个或多个用户或角色。
超级用户和具有 sys:secadmin 角色的用户或角色可以附加策略。
语法
ATTACH RLS POLICY { policy_name ON [TABLE] table_name [, ...] | database_name.policy_name ON [TABLE] database_name.schema_name.table_name [, ...] } TO { user_name | ROLE role_name | PUBLIC } [, ...]
参数
- policy_name
-
策略的名称。
- database_name
-
在其中创建策略和关系的数据库的名称。策略和关系必须在同一个数据库中。该数据库可以是连接的数据库,也可以是支持 Amazon Redshift 联合身份验证权限的数据库。
- schema_name
-
关系所属的架构的名称。
- table_name
-
行级安全策略所附加到的关系。
- TO { user_name | ROLE role_name | PUBLIC} [, ...]
-
指定是否将策略附加到一个或多个指定用户或角色。
有关在 Amazon Redshift 联合身份验证权限目录上使用 ATTACH RLS POLICY 的信息,请参阅使用 Amazon Redshift 联合身份验证权限管理访问控制。
使用说明
在使用 ATTACH RLS POLICY 语句时,请遵守以下规则:
-
附加的表应该包含策略创建语句的 WITH 子句中列出的所有列。
-
Amazon Redshift RLS 支持将 RLS 策略附加到以下对象:
-
表
-
视图
-
后期绑定视图
-
实体化视图
-
-
Amazon Redshift RLS 不支持将 RLS 策略附加到以下对象:
-
目录表
-
跨数据库关系
-
外部表
-
临时表
-
策略查找表
-
实体化视图基表
-
-
附加到超级用户或具有
sys:secadmin权限的用户的 RLS 策略将被忽略。
示例
以下示例将 RLS 策略附加到指定的表和角色组合。当角色为 analyst 或 dbadmin 的任何用户访问 tickit_category_redshift 表时,RLS 策略适用于此类用户。
ATTACH RLS POLICY policy_concerts ON tickit_category_redshift TO ROLE analyst, ROLE dbadmin;