1. 插件src_restrict简介
src_restrict是KingbaseES的一个扩展插件,主要用于支持来源限制功能,该功能通过hba的黑白名单来实现。插件src_restrict默认加载。
-
插件名为 src_restrict
-
插件版本 V1.0
2. 插件src_restrict加载方式¶
KingbaseES数据库默认将他添加到 kingbase.conf 文件的 shared_preload_libraries 中,重启数据库时自动加载。
示例:
shared_preload_libraries = 'src_restrict'
3. 插件src_restrict的参数配置¶
src_restrict.enable
是否允许使用黑白名单功能,取值范围为 true 或者 false ,缺省值为 true。
\c - sso show src_restrict.enable; src_restrict.enable --------------------- on (1 row) alter system set src_restrict.enable = off; select sys_reload_conf(); show src_restrict.enable; src_restrict.enable --------------------- off (1 row)
4. 插件src_restrict使用方法¶
4.1. 系统函数 src_restrict.add_rules¶
src_restrict.add_rules( filter_type int, rule_user text, rule_ip text, outrule_ip text)
功能说明
添加来源限制的规则,可通过参数选择配置白名单或黑名单。
参数说明
filter_type
限制规则的类型,0为白名单,1为黑名单。
rule_user
限制的用户名,多个用户时需使用逗号分隔,null表示限制所有用户。当用户名中存在特殊字符时,请将该用户名使用双引号括起来,避免用户名识别失败。
用户名参数最大长度255。
rule_ip
限制的IP,多个IP之间需使用逗号分隔,null表示限制所有IP。
允许使用*号进行IP网段匹配,但网段后不允许出现具体IP,例如192.168.*.123。
outrule_ip
不受限制的IP,与rule_ip相同。
不受限制仅表示该参数与rule_ip的类型相反,例如filter_type为0,则rule_ip为白名单,outrule_ip为黑名单,不影响黑白名单优先级。
返回值说明
无返回值
4.2. 系统函数 src_restrict.remove_rules¶
src_restrict.remove_rules( filter_type int, rule_user text, rule_ip text)
功能说明
删除来源限制的规则。
参数说明
filter_type
规则的类型,0为白名单,1为黑名单。
rule_user
规则的用户名,多个用户时需使用逗号分隔,null等于all。当用户名中存在特殊字符时,请将该用户名使用双引号括起来,避免用户名识别失败。
用户名参数最大长度255。
rule_ip
规则的IP,只允许删除一个IP,不支持删除多个规则,null等于0.0.0.0/0。
允许使用*号进行IP网段匹配,但网段后不允许出现具体IP,例如192.168.*.123。
返回值说明
无返回值
提示
删除函数中,要删除的规则中类型,用户名(包括用户个数),规则IP都要与规则一一对应,否则将无法删除。
4.3. 系统视图 src_restrict.show_rules¶
所有用户都可以通过该视图查看当前的限制规则。
select * from src_restrict.show_rules;
参数说明
filter_type
规则的类型,allow为白名单,reject为黑名单。
rule_user
规则的用户名。
rule_ip
规则的IP。
netmask
规则IP对应的子网掩码。
4.4. 示例¶
\c - sso --添加对用户u1,IP地址为192.168.1.2的黑名单规则 select src_restrict.add_rules(1, 'u1', '192.168.1.2', ''); --查看当前黑白名单 select * from src_restrict.show_rules; --删除刚添加的规则 select src_restrict.remove_rules(1, 'u1', '192.168.1.2');
5. 插件src_restrict卸载方法¶
修改 kingbase.conf 文件中 shared_preload_libraries
参数后重启数据库。
示例:
shared_preload_libraries = ''
6. 插件src_restrict升级方法¶
src_restrict扩展插件通常随着KingbaseES安装包一并升级。通常情况下用户无须单独升级这些插件。