
# ALTER ROW LEVEL SECURITY POLICY
#### 功能描述
修改已有行级访问控制策略的定义，包括行级访问控制策略的名称、策略应用的用户及策略表达式等。
#### 注意事项
表的所有者或管理员用户才能执行ALTER ROW LEVEL SECURITY POLICY。
#### 语法格式
```
ALTER [ ROW LEVEL SECURITY ] POLICY [ IF EXISTS ] policy_name ON table_name RENAME TO new_policy_name
ALTER [ ROW LEVEL SECURITY ] POLICY policy_name ON table_name
    [ TO { role_name | PUBLIC } [, ...] ]
    [ USING ( using_expression ) ]
```
#### 参数说明
表1ALTER ROW LEVEL SECURITY POLICY参数说明 
| 参数               | 描述                                         | 取值范围         |
|:---|:---|:---|
| policy_name      | 要修改的行级访问控制策略名称。                            | 已有的行级访问控制策略。 |
| table_name       | 应用行级访问控制策略的表名                              | 已存在的表名。      |
| new_policy_name  | 新的行级访问控制策略名称。                              | -            |
| role_name        | 行级访问控制策略应用的数据库用户，可以指定多个用户，PUBLIC表示应用到所有用户。 | 已存在的角色名。     |
| using_expression | 行级访问控制的表达式，返回值为boolean类型。                  | -            |
   
#### 示例
创建示例表all_data和用户alice、bob。
```
DROP TABLE IF EXISTS all_data;
CREATE TABLE all_data (a int, b int);
DROP USER IF EXISTS alice CASCADE;
DROP USER IF EXISTS bob CASCADE;
CREATE USER alice PASSWORD '{password}';
CREATE USER bob PASSWORD '{password}';
```
开启表all_data的行级访问控制策略功能。
```
ALTER TABLE all_data ENABLE ROW LEVEL SECURITY;
```
在表all_data上创建行级访问控制策略all_data_rls。
```
CREATE ROW LEVEL SECURITY POLICY all_data_rls ON all_data USING(b = CURRENT_USER);
```
修改行级访问控制策略的名称all_data_rls为新的名称all_data_new_rls。
```
ALTER ROW LEVEL SECURITY POLICY all_data_rls ON all_data RENAME TO all_data_new_rls;
```
修改行级访问控制策略all_data_new_rls应用的用户为alice和bob。
```
ALTER ROW LEVEL SECURITY POLICY all_data_new_rls ON all_data TO alice, bob;
```
修改行级访问控制策略all_data_new_rls的过滤条件（alice和bob只能访问a列值大于100且b列值等于当前登录用户名的数据行）。
```
ALTER ROW LEVEL SECURITY POLICY all_data_new_rls ON all_data USING (a > 100 AND b = current_user);
```
#### 相关链接
[CREATE ROW LEVEL SECURITY POLICY](https://support.huaweicloud.com/sqlreference-dws/dws_06_0169.html)，[DROP ROW LEVEL SECURITY POLICY](https://support.huaweicloud.com/sqlreference-dws/dws_06_0200.html)
