SQL防火墙系统函数

  • gs_create_sql_limit(limit_name, limit_type, work_node, max_concurrency, start_time, end_time, limit_opt, databases, users)

    描述:新增SQL防火墙规则。

    返回值类型:int8

    表 1 gs_create_sql_limit参数说明

    参数类型

    参数名

    类型

    描述

    输入参数

    limit_name

    name

    规则名称

    输入参数

    limit_type

    text

    规则类型。支持sqlid、select、update、insert、delete。

    输入参数

    work_node

    int1

    规则生效节点。0表示生效主/备节点;1表示生效主节点;2表示生效备节点。其他值表示生效备节点。

    输入参数

    max_concurrency

    int8

    规则最大并发数。-1表示规则不启用;>=0表示限制并发数。

    输入参数

    start_time

    timestampTz

    规则生效起始时间。NULL表示不限制。

    输入参数

    end_time

    timestampTz

    规则生效结束时间。NULL表示不限制。

    输入参数

    limit_opt

    text[]

    规则详细信息。sqlid类型,填写'{722996022}',表示限制unique_sql_id为722996022的SQL语句。select、update、insert、delete类型,填写'{select,from,t1}',表示限制执行的SQL语句为select * from t1。

    输入参数

    databases

    name[]

    规则生效数据库列表。可以为NULL,表示所有数据库生效。

    输入参数

    users

    name[]

    规则生效用户列表。可以为NULL,表示所有用户生效。系统用户不受规则限制。

  • gs_update_sql_limit(limit_id, limit_name, work_node, max_concurrency, start_time, end_time, limit_opt, databases, users)

    描述:更新SQL防火墙规则。

    返回值类型:boolean

    表 2 gs_update_sql_limit参数说明

    参数类型

    参数名

    类型

    描述

    输入参数

    limit_id

    int8

    规则id。通过gs_sql_limit系统表查询或者gs_select_sql_limit()函数获取。

    输入参数

    limit_name

    name

    规则名称。

    输入参数

    work_node

    int1

    规则生效节点。0表示生效主/备节点;1表示生效主节点;2表示生效备节点。其他值表示生效备节点。

    输入参数

    max_concurrency

    int8

    规则最大并发数。-1表示规则不启用;>=0表示限制并发数。

    输入参数

    start_time

    timestampTz

    规则生效起始时间。NULL表示不限制。

    输入参数

    end_time

    timestampTz

    规则生效结束时间。NULL表示不限制。

    输入参数

    limit_opt

    text[]

    规则详细信息。sqlid类型,填写'{722996022}',表示限制unique_sql_id为722996022的SQL语句。select、update、insert、delete类型,填写'{select,from,t1}',表示限制执行的SQL语句为select * from t1。

    输入参数

    databases

    name[]

    规则生效数据库列表。可以为NULL,表示所有数据库生效。

    输入参数

    users

    name[]

    规则生效用户列表。可以为NULL,表示所有用户生效。系统用户不受规则限制。

  • gs_select_sql_limit(limit_id)

    描述:查询指定limit_id的规则。

    返回值类型:boolean

    表 3 gs_select_sql_limit参数说明

    参数类型

    参数名

    类型

    描述

    输入参数

    limit_id

    int8

    规则id。

    输出参数

    limit_id

    int8

    规则id。

    输出参数

    is_valid

    boolean

    规则是否生效。

    输出参数

    work_node

    int1

    规则生效节点。

    输出参数

    max_concurrency

    int8

    规则最大并发数。

    输出参数

    hit_count

    int8

    规则被命中的次数。

    输出参数

    reject_count

    int8

    拦截SQL的次数。

  • gs_select_sql_limit()

    描述:查询所有的规则。

    返回值类型:boolean

    表 4 gs_select_sql_limit参数说明

    参数类型

    参数名

    类型

    描述

    输出参数

    limit_id

    int8

    规则id。

    输出参数

    is_valid

    boolean

    规则是否生效。

    输出参数

    work_node

    int1

    规则生效节点。

    输出参数

    max_concurrency

    int8

    规则最大并发数。

    输出参数

    hit_count

    int8

    规则被命中的次数。

    输出参数

    reject_count

    int8

    拦截SQL的次数。

  • gs_delete_sql_limit(limit_id)

    描述:删除指定id的规则。

    返回值类型:boolean

    表 5 gs_delete_sql_limit参数说明

    参数类型

    参数名

    类型

    描述

    输入参数

    limit_id

    int8

    规则id。

意见反馈
编组 3备份
    openGauss 2025-06-23 22:42:40
    取消