ALTER REDACTION POLICY
Function
ALTER REDACTION POLICY modifies a data redaction policy applied to a specified table.
Precautions
Only the table object owner and users with the gs_redaction_policy preset role can modify the masking policy.
Syntax
- Modify the expression used for a redaction policy to take effect.
1ALTER REDACTION POLICY policy_name ON table_name WHEN (when_expression);
- Enable or disable a redaction policy.
1ALTER REDACTION POLICY policy_name ON table_name ENABLE | DISABLE;
- Rename a redaction policy.
1ALTER REDACTION POLICY policy_name ON table_name RENAME TO new_policy_name;
- Add, modify, or delete a column on which the redaction policy is used.
1 2
ALTER REDACTION POLICY policy_name ON table_name action;
There are several clauses of action:
1 2 3
[INHERIT] ADD COLUMN column_name WITH redaction_function_name ( [ argument [, ...] ] ) | [INHERIT] MODIFY COLUMN column_name WITH redaction_function_name ( [ argument [, ...] ] ) | DROP COLUMN column_name
Parameter Description
Parameter | Description | Value Range |
|---|---|---|
policy_name | Specifies the name of the redaction policy to be modified. | Name of an existing masking policy. |
table_name | Specifies the name of the table to which the redaction policy is applied. | Name of an existing table. |
when_expression | Specifies the new expression used for the redaction policy to take effect. | - |
ENABLE | DISABLE | Specifies whether to enable or disable the current redaction policy.
| - |
new_policy_name | Specifies the new name of the redaction policy. | A string compliant with the identifier naming rules. |
column_name | Specifies the name of the table column to which the redaction policy is applied.
| - |
redaction_function_name | Specifies the name of a redaction function. | For details about the supported functions, see Data Redaction Functions. |
arguments | Specifies the list of arguments of the masking function.
| For details about the supported functions, see Data Redaction Functions. |
Examples
1 | CREATE ROLE test_role PASSWORD '{Password}'; |
1 2 3 | DROP TABLE IF EXISTS emp; CREATE TABLE emp(id int, name varchar(20), salary NUMERIC(10,2)); INSERT INTO emp VALUES(1, 'July', 1230.10), (2, 'David', 999.99); |
1 | CREATE REDACTION POLICY mask_emp ON emp WHEN(current_user = 'test_role') ADD COLUMN salary WITH mask_full(salary); |
Modify the expression for the data masking policy to take effect for the specified role. (If no user is specified, the policy takes effect for the current user by default.)
1 2 | ALTER REDACTION POLICY mask_emp ON emp WHEN (pg_has_role(current_user, 'redact_role', 'member')); ALTER REDACTION POLICY mask_emp ON emp WHEN (pg_has_role('redact_role', 'member')); |
Modify the expression for the masking policy to take effect for all users.
1 | ALTER REDACTION POLICY mask_emp ON emp WHEN (1=1); |
Disable the masking policy.
1 | ALTER REDACTION POLICY mask_emp ON emp DISABLE; |
Enable the masking policy again.
1 | ALTER REDACTION POLICY mask_emp ON emp ENABLE; |
Change the masking policy name to mask_emp_new.
1 | ALTER REDACTION POLICY mask_emp ON emp RENAME TO mask_emp_new; |
Add a column with the masking policy used.
1 | ALTER REDACTION POLICY mask_emp_new ON emp ADD COLUMN name WITH mask_partial(name, '*', 1, length(name)); |
Modify the masking policy for the name column. Use the MASK_FULL function to redact all data in the name column.
1 | ALTER REDACTION POLICY mask_emp_new ON emp MODIFY COLUMN name WITH mask_full(name); |
Delete an existing column where the masking policy is used.
1 | ALTER REDACTION POLICY mask_emp_new ON emp DROP COLUMN name; |
Helpful Links
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.

