返回首页

gbase数据、南大通用产品文档:GBase8c安全函数

更新日期:2024年09月11日


gs_encrypt_aes128(encryptstr,keystr)
描述:以keystr 为密钥对encryptstr 字符串进行加密,返回加密后的字符串。keystr 的
长度范围为8~16 字节,至少包含3 种字符(大写字母、小写字母、数字、特殊字符)

返回值类型:text
返回值长度:
至少为92 字节,
不超过4*[(Len+68)/3]字节,
其中Len 为加密前数据长度
(单位为字节)

示例:
gbase=# SELECT gs_encrypt_aes128('MPPDB','Asdf1234');
gs_encrypt_aes128
-----------------------------------------------------------------------------
-----------------
PkKJ0I+o6V83IXB2MbfS34amruD+5hrzsD/IQEU7HL0XfpAb1rfEvkjtKgoypGs7hlJfPpqc20EGx
CpHRQHfexdknO8=
(1 row)
由于该函数的执行过程需要传入解密口令,
为了安全起见,
gsql 工具不会将该函数记录
入执行历史。即无法在gsql 里通过上下翻页功能找到该函数的执行历史。

gs_encrypt(encryptstr,keystr,encrypttype)
描述:根据encrypttype,以keystr 为密钥对encryptstr 字符串进行加密,返回加密后的
字符串。keystr 的长度范围为8~16 字节,至少包含3 种字符(大写字母、小写字母、数字、
特殊字符)
,encrypttype 可以是aes128 或sm4。
返回值类型:text
示例:
gbase=# SELECT gs_encrypt('MPPDB','Asdf1234','sm4');
gs_encrypt
------------------------------

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
371
UFrm2vuNFSEbDAmFObfNIqW7dbCa
(1 row)
由于该函数的执行过程需要传入解密口令,
为了安全起见,
gsql 工具不会将该函数记录
入执行历史。即无法在gsql 里通过上下翻页功能找到该函数的执行历史。

gs_decrypt_aes128(decryptstr,keystr)
描述:以keystr 为密钥对decrypt 字符串进行解密,返回解密后的字符串。解密使用的
keystr 必须保证与加密时使用的keystr 一致才能正常解密。keystr 不得为空。
此参数需要结合gs_encrypt_aes128 加密函数共同使用。
返回值类型:text
示例:
-- gs_decrypt_aes128 第一个输入参数为gs_encrypt_aes128 输出参数;第二个输入参
数为gs_encrypt_aes128 第二个输入参数
gbase=# select
gs_decrypt_aes128('PkKJ0I+o6V83IXB2MbfS34amruD+5hrzsD/IQEU7HL0XfpAb1rfEvkjtK
goypGs7hlJfPpqc20EGxCpHRQHfexdknO8=','Asdf1234');
gs_decrypt_aes128
-------------------
MPPDB
(1 row)
由于该函数的执行过程需要传入解密口令,
为了安全起见,
gsql 工具不会将该函数记录
入执行历史;即无法在gsql 里通过上下翻页功能找到该函数的执行历史。

gs_decrypt(decryptstr,keystr,decrypttype)
描述:根据decrypttype,以keystr 为密钥对decrypt 字符串进行解密,返回解密后的字
符串。解密使用的decrypttype 及keystr 必须保证与加密时使用的encrypttype 及keystr 一致
才能正常解密。keystr 不得为空。decrypttype 可以是aes128 或sm4。

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
372
此函数需要结合gs_encrypt 加密函数共同使用。
返回值类型:text
示例:

gbase=# select
gs_decrypt('ZBzOmaGA4Bb+coyucJ0B8AkIShqc','Asdf1234','sm4');

gs_decrypt

------------

MPPDB

(1 row)
由于该函数的执行过程需要传入解密口令,
为了安全起见,
gsql 工具不会将该函数记录
入执行历史;即无法在gsql 里通过上下翻页功能找到该函数的执行历史。

gs_password_deadline
描述:显示当前帐户密码离过期还距离多少天。
返回值类型:interval
示例:
gbase=# SELECT gs_password_deadline();
gs_password_deadline
-------------------------
72 days 16:16:56.315324
(1 row)

gs_password_notifytime
描述:显示帐户密码到期前提醒的天数。
返回值类型:int32

login_audit_messages
描述:查看登录用户的登录信息。
返回值类型:元组

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
373
示例:
查看上一次登录认证通过的日期、时间和IP 等信息。
gbase=# select * from login_audit_messages(true);
username | database |
logintime
|
mytype
| result |
client_conninfo
----------+----------+------------------------+---------------+--------+-----
-------------
gbase
| postgres | 2022-05-18 17:08:46+08 | login_success | ok
|
gs_ctl@[local_ip]
查看上一次登录认证失败的日期、时间和IP 等信息。
gbase=# select * from login_audit_messages(false) ORDER BY logintime desc limit
1;
username | database | logintime | mytype | result | client_conninfo
----------+----------+-----------+--------+--------+-----------------
(0 rows)
查看自从最后一次认证通过以来失败的尝试次数、日期和时间。
gbase=# select * from login_audit_messages(false);
username | database |
logintime
|
mytype
| result |
client_conninfo
----------+----------+------------------------+--------------+--------+------
-------------
(0 rows)

login_audit_messages_pid
描述:查看登录用户的登录信息。与login_audit_messages 的区别在于结果基于当前
backendid 向前查找。所以不会因为同一用户的后续登录,而影响本次登录的查询结果。也
就是查询不到该用户后续登录的信息。
返回值类型:元组
示例:
查看上一次登录认证通过的日期、时间和IP 等信息。
gbase=# SELECT * FROM login_audit_messages_pid(true);

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
374
username | database |
logintime
|
mytype
| result |
client_conninfo
|
backendid
----------+----------+------------------------+---------------+--------+-----
-------------+-----------------
gbase
| postgres | 2022-05-18 17:02:34+08 | login_success | ok
|
gs_ctl@10.0.7.16 | 140573725284096
(1 row)
查看上一次登录认证失败的日期、时间和IP 等信息。
gbase=# SELECT * FROM login_audit_messages_pid(false) ORDER BY logintime desc
limit 1;
username | database | logintime | mytype | result | client_conninfo | backendid
----------+----------+-----------+--------+--------+-----------------+-------
----
(0 rows)
查看自从最后一次认证通过以来失败的尝试次数、日期和时间。
gbase=# SELECT * FROM login_audit_messages_pid(false);
username | database | logintime | mytype | result | client_conninfo | backendid
----------+----------+-----------+--------+--------+-----------------+-------
----
(0 rows)

inet_server_addr
描述:显示服务器IP 信息。
返回值类型:inet
示例:
gbase=# SELECT inet_server_addr();

inet_server_addr

------------------

集群层SQL执行计划界面显示当前sql正在执行的情况.通过该功能可以查
看那些查询比较缓慢耗时的sql,用于分析问题.
【注】
默认情况下集群是不提供执行计划的功能的,如果用户需要在统一监
控上使用该功能需要修改集群配置文件参数_t_gcluster_monitor_optimize=1,
或者登录通过如下命令设置set global _t_gcluster_monitor_optimize=1.
用户在会话信息界面点击列表中相应一条会话信息的sql 执行计划列的查
看链接后,默认显示如下界面:
图3.3-57 集群层SQL 执行计划
界面属性元素说明如下:

集群名称:显示当前执行节点所属的集群信息.

节点IP:sql 执行节点的ip 地址.

SQL:当前正在执行的sql 语句.

执行计划:当前sql 的执行情况,以树形展示,默认是折叠的.

展开/折叠:用户展开或折叠执行计划树.

刷新:刷新当前页面,重新获取该sql 的执行计划信息.

统一数据平台监控与运维系统用户手册
南大通用数据技术股份有限公司
- 165 -

返回:退出当前页面,回到父界面.

可通过发出以下命令,从高可用性集群中除去 RS 辅助服务器:
onmode -d delete RSS rss_servername