从 2025 年 11 月 1 日起,Amazon Redshift 将不再支持创建新的 Python UDF。如果您想要使用 Python UDF,请在该日期之前创建 UDF。现有的 Python UDF 将继续正常运行。有关更多信息,请参阅博客文章
ALTER RLS POLICY
更改表上现有的行级别安全性策略。
超级用户和具有 sys:secadmin 角色的用户或角色可以更改策略。
语法
ALTER RLS POLICY { policy_name | database_name.policy_name } USING ( using_predicate_exp );
参数
- policy_name
-
策略的名称。
- database_name
-
从其中创建策略的数据库的名称。该数据库可以是连接的数据库,也可以是支持 Amazon Redshift 联合身份验证权限的数据库。
- USING ( using_predicate_exp )
-
指定应用于查询的 WHERE 子句的筛选器。Amazon Redshift 会在查询级别的用户谓词之前应用策略谓词。例如,
current_user = ‘joe’ and price > 10限制 Joe 只能查看价格高于 10 美元的记录。该表达式可以访问在 CREATE RLS POLICY 语句的 WITH 子句中声明的变量,该语句用于创建名为 policy_name 的策略。
有关在 Amazon Redshift 联合身份验证权限目录上使用 ALTER RLS POLICY 的信息,请参阅使用 Amazon Redshift 联合身份验证权限管理访问控制。
示例
以下示例介绍了更改 RLS 策略。
-- First create an RLS policy that limits access to rows where catgroup is 'concerts'. CREATE RLS POLICY policy_concerts WITH (catgroup VARCHAR(10)) USING (catgroup = 'concerts'); -- Then, alter the RLS policy to only show rows where catgroup is 'piano concerts'. ALTER RLS POLICY policy_concerts USING (catgroup = 'piano concerts');