金仓数据库 KingbaseES 插件参考手册 S (1)
73. seg
73.1. 插件seg简介
seg是KingbaseES的一个扩展插件,这个插件可以为程序提供seg数据类型的使用,是为了表示线段或者浮点区间而实现的一种数据类型。
seg可以表示区间端点中的不确定性,这使得它对表达实验室测量特别有用。
-
插件名为 seg
-
插件版本 V1.3
73.2. 插件seg加载方式
KingbaseES数据库默认将它添加到 kingbase.conf 文件的 shared_preload_libraries 中,重启数据库时自动加载。
shared_preload_libraries = 'seg'
73.3. 插件seg的参数配置
无需配置任何参数
73.4. 插件seg的使用方法
加载seg插件后,程序内可以使用seg数据类型。
示例:
-- 创建插件 \c test system create extension seg; CREATE EXTENSION -- 使用示例 SELECT '1.0e+7'::seg AS seg; seg --------- 1.0e+07 (1 行记录) SELECT '0.000000120'::seg AS seg; seg ---------- 1.20e-07 (1 行记录) SELECT '0 .. 1'::seg AS seg; seg -------- 0 .. 1 (1 行记录) SELECT '24 .. 33.20'::seg != '24 .. 33.21'::seg AS bool; bool ------ t (1 行记录)
73.5. 插件seg卸载方法
修改 kingbase.conf 文件中 shared_preload_libraries
参数后重启数据库。
shared_preload_libraries = ''
73.6. 插件seg升级方法
seg扩展插件通常随着KingbaseES安装包一并升级。通常情况下用户无须单独升级些插件。
74. security_utils
74.1. 插件security_utils简介
security_utils是KingbaseES的一个扩展插件,主要用于支持一些安全方面的功能,目前支持的功能有日志密码脱敏。
-
插件名为 security_utils
-
插件版本 V1.0
74.2. 插件security_utils加载方式
在使用 security_utils 之前,我们需要将他添加到 kingbase.conf 文件的 shared_preload_libraries 中,并重启 KingbaseES 数据库。
示例:
shared_preload_libraries = 'security_utils'
74.3. 插件security_utils的参数配置
security_utils.password_masking_enable
启动日志密码脱敏功能,取值范围为 on 或者 off,缺省值为 off。
show security_utils.password_masking_enable; security_utils.password_masking_enable ---------------------------------------- off (1 row) \c - system alter system set security_utils.password_masking_enable = on; select sys_reload_conf(); show security_utils.password_masking_enable; security_utils.password_masking_enable ---------------------------------------- on (1 row)
74.4. 插件security_utils使用方法
KingbaseES加载 auth_delay 插件,并修改了参数后,当开启DDL日志时,日志中涉及密码的SQL语句可以进行脱敏处理。
示例
---开启密码脱敏 \c - system create extension security_utils; alter system set security_utils.password_masking_enable=on; select sys_reload_conf(); ---设置日志级别 alter system set log_statement='ddl'; select sys_reload_conf(); ---执行user的包含密码的ddl语句 drop user testpwdtmu1; create user testpwdtmu1 with password '12345678ab'; alter user testpwdtmu1 with password '12345678abc'; drop user testpwdtmu1; ---查看sys_log下的日志文件,上述语句password脱敏,以*显示 ERROR: role "testpwdtmu1" does not exist STATEMENT: drop user testpwdtmu1; LOG: statement: create user testpwdtmu1 with password '**********'; LOG: statement: alter user testpwdtmu1 with password '***********'; LOG: statement: drop user testpwdtmu1; ---清空环境 alter system set security_utils.password_masking_enable=off; select sys_reload_conf(); drop extension security_utils;
74.5. 插件security_utils卸载方法
修改 kingbase.conf 文件中 shared_preload_libraries
参数后重启数据库。
示例:
shared_preload_libraries = ''
74.6. 插件security_utils升级方法
security_utils扩展插件通常随着KingbaseES安装包一并升级。通常情况下用户无须单独升级这些插件。
75. sepapower
75.1. 插件sepapower简介
sepapower是KingbaseES的一个扩展插件,主要用于支持三权分立功能。三权分立插件默认加载。
具体的三权分立功能介绍,参考《 KingbaseES安全指南 》 3.1.2.2 三权分立章节。
-
插件名为 sepapower
-
插件版本 V1.0
75.2. 插件sepapower加载方式
KingbaseES数据库默认将他添加到 kingbase.conf 文件的 shared_preload_libraries 中,重启数据库时自动加载。
示例:
shared_preload_libraries = 'sepapower'
75.3. 插件sepapower的参数配置
sepapower.separate_power_grant
是否由sso用户控制使用DCL语句,取值范围为 true 或者 false ,缺省值为 false。
\c - system show sepapower.separate_power_grant; sepapower.separate_power_grant -------------------------------- off (1 row) alter system set sepapower.separate_power_grant = on; select sys_reload_conf(); show sepapower.separate_power_grant; sepapower.separate_power_grant -------------------------------- on (1 row) ``sepapower.check_noprivileges_grant`` 是否对无授权权限操作进行报错处理,取值范围为 true 或者 false ,缺省值为 false。
show sepapower.check_noprivileges_grant; sepapower.check_noprivileges_grant ------------------------------------ off (1 row) alter system set sepapower.check_noprivileges_grant = on; select sys_reload_conf(); show sepapower.check_noprivileges_grant; sepapower.check_noprivileges_grant ------------------------------------ on (1 row)
75.4. 插件sepapower使用方法
具体参考《 KingbaseES安全指南 》 3.1.2.2 三权分立章节。
75.5. 插件sepapower卸载方法
修改 kingbase.conf 文件中 shared_preload_libraries
参数后重启数据库。
示例:
shared_preload_libraries = ''
75.6. 插件sepapower升级方法¶
sepapower扩展插件通常随着KingbaseES安装包一并升级。通常情况下用户无须单独升级这些插件。
76. src_restrict
76.1. 插件src_restrict简介
src_restrict是KingbaseES的一个扩展插件,主要用于支持来源限制功能,该功能通过hba的黑白名单来实现。插件src_restrict默认加载。
-
插件名为 src_restrict
-
插件版本 V1.0
76.2. 插件src_restrict加载方式
KingbaseES数据库默认将他添加到 kingbase.conf 文件的 shared_preload_libraries 中,重启数据库时自动加载。
示例:
shared_preload_libraries = 'src_restrict'
76.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)
76.4. 插件src_restrict使用方法
76.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为黑名单,不影响黑白名单优先级。
返回值说明
无返回值
76.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。
返回值说明
无返回值
76.4.3. 系统视图 src_restrict.show_rules
所有用户都可以通过该视图查看当前的限制规则。
select * from src_restrict.show_rules;
参数说明
filter_type
规则的类型,allow为白名单,reject为黑名单。
rule_user
规则的用户名。
rule_ip
规则的IP。
netmask
规则IP对应的子网掩码。
76.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');
76.5. 插件src_restrict卸载方法
修改 kingbase.conf 文件中 shared_preload_libraries
参数后重启数据库。
示例:
shared_preload_libraries = ''
76.6. 插件src_restrict升级方法
src_restrict扩展插件通常随着KingbaseES安装包一并升级。通常情况下用户无须单独升级这些插件。
77. sslinfo
77.1. 插件sslinfo简介
sslinfo是KingbaseES的一个扩展插件,sslinfo插件提供当前客户端提供的 SSL 证书的有关信息。如果当前连接不使用 SSL,这个模块就没有用处(大部分函数将返回 NULL)。
本模块提供的一些信息,也可以使用内置系统视图pg_stat_ssl来获得。
-
插件名为 sslinfo
-
插件版本 V1.2
77.2. 插件sslinfo加载方式
KingbaseES数据库可将它添加到 kingbase.conf 文件的 shared_preload_libraries 中,重启数据库时自动加载。
shared_preload_libraries = 'sslinfo'
77.3. 插件sslinfo的参数配置
无需配置任何参数
77.4. 插件sslinfo的使用方法
加载sslinfo插件后,程序可以提供当前客户端提供的 SSL 证书的有关信息。
示例:
-- 创建插件 \c test system create extension sslinfo; CREATE EXTENSION
77.5. 插件sslinfo卸载方法
修改 kingbase.conf 文件中 shared_preload_libraries
参数后重启数据库。
shared_preload_libraries = ''
77.6. 插件sslinfo升级方法
sslinfo扩展插件通常随着KingbaseES安装包一并升级。通常情况下用户无须单独升级些插件。