Updated on 2024-09-30 GMT+08:00

ALTER BLOCK RULE

Function

This function modifies the attributes of a filtering rule, including the filtering rule name, bound client name, client IP address, user, and matching mode.

This syntax is supported only by clusters of 9.1.0.100 and later versions.

Precautions

  • Only a user with the database owner permission or the gs_role_block role permission can run the ALTER BLOCK RULE statement. A system administrator has this permission by default.
  • The DEFAULT syntax is used to reset an attribute, but it applies only to optional options.

Syntax

1
2
3
4
5
6
7
ALTER BLOCK RULE block_name
    [ [ TO user_name@'host' ] | [ TO user_name ] | [ TO 'host' ] | [ TO DEFAULT ] ] |
    [ FOR UPDATE | SELECT | INSERT | DELETE | MERGE | DEFAULT ] |
    FILTER BY
    { SQL ( 'text' ) | TEMPLATE ( template_parameter = value ) }
    [ WITH ( { with_parameter = value }, [, ... ] ) ];
ALTER BLOCK RULE block_name RENAME to new_block_name;

Parameter Description

  • block_name

    Name of the query filtering rule whose attributes need to be modified.

    Value range: a string. It must comply with the naming convention.

  • user_name

    Queries the users to which the filtering rule applies.

    Value range: A string. It must be a valid username.

  • host

    Queries the client IP address to which the filtering rule applies.

    Value range: a string of valid IP addresses.

  • SQL

    Queries the regular expression matching statement of the filtering rule.

    Value range: a string or a regular expression.

  • template_parameter

    Queries a filtering rule matching template.

    Value range: unique_sql_id/sql_hash. The value is a character string, where unique_sql_id must be all digits.

  • with_parameter

    Queries filtering rule options.

    Valid value:

    • application_name
    • query_band
    • table_num
    • partition_num
    • estimate_row

Examples

Create a query rule query_block.

1
CREATE BLOCK RULE query_block FILTER BY SQL('update table_table set a=1');

Modify the attributes of the query rule query_block.

1
ALTER BLOCK RULE query_block TO user1@'192.168.x.x' FOR SELECT FILTER BY SQL('select * from table_name')WITH(application_name='gsql',query_band='test1',table_num='2',partition_num='3',estimate_row='1000');

Rename the query rule query_block.

1
ALTER BLOCK RULE query_block RENAME TO query_block_new;