GBase 8c V3.0.0数据类型——安全函数

  1. 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/IQEU7HL0XfpAb1rfEvkjtKgoypGs7hlJfPpqc20EGxCpHRQHfexdknO8=

(1 row)

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

  1. 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

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

 UFrm2vuNFSEbDAmFObfNIqW7dbCa

(1 row)

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

  1. 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/IQEU7HL0XfpAb1rfEvkjtKgoypGs7hlJfPpqc20EGxCpHRQHfexdknO8=','Asdf1234');

 gs_decrypt_aes128

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

 MPPDB

(1 row)

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

  1. gs_decrypt(decryptstr,keystr,decrypttype)

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

此函数需要结合gs_encrypt加密函数共同使用。

返回值类型:text

示例:

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

  ​gs_decrypt

 ​------------

  ​MPPDB

 ​(1 row)

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

  1. gs_password_deadline

描述:显示当前帐户密码离过期还距离多少天。

返回值类型:interval

示例:

 gbase=# SELECT gs_password_deadline();

  gs_password_deadline

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

 72 days 16:16:56.315324

(1 row)

  1. gs_password_notifytime

描述:显示帐户密码到期前提醒的天数。

返回值类型:int32

  1. login_audit_messages

描述:查看登录用户的登录信息。

返回值类型:元组

示例:

查看上一次登录认证通过的日期、时间和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)

  1. login_audit_messages_pid

描述:查看登录用户的登录信息。与login_audit_messages的区别在于结果基于当前backendid向前查找。所以不会因为同一用户的后续登录,而影响本次登录的查询结果。也就是查询不到该用户后续登录的信息。

返回值类型:元组

示例:

查看上一次登录认证通过的日期、时间和IP等信息。

 gbase=# SELECT * FROM login_audit_messages_pid(true);

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)

  1. inet_server_addr

描述:显示服务器IP信息。

返回值类型:inet

示例:

gbase=# SELECT inet_server_addr();

  ​inet_server_addr

 ​------------------

  ​10.10.0.13

 ​(1 row)

上面是以客户端在10.10.0.50上,服务器端在10.10.0.13上为例。

如果是通过本地连接,使用此接口显示为空。

  1. inet_client_addr

描述:显示客户端IP信息。

返回值类型:inet

示例:

  gbase=# SELECT inet_client_addr();

  ​inet_client_addr

 ​------------------

  ​10.10.0.50

 ​(1 row)

上面是以客户端在10.10.0.50上,服务器端在10.10.0.13上为例。

如果是通过本地连接,使用此接口显示为空。

  1. pg_query_audit

描述:查看数据库主节点审计日志。

返回值类型:record

函数返回字段如下:

名称

类型

描述

time

timestamp with time zone

操作时间

type

text

操作类型

result

text

操作结果

userid

oid

用户id

username

text

执行操作的用户名

database

text

数据库名称

client_conninfo

text

客户端连接信息

object_name

text

操作对象名称

detail_info

text

执行操作详细信息

node_name

text

节点名称

thread_id

text

线程id

local_port

text

本地端口

remote_port

text

远端端口

  1. pg_delete_audit

描述:删除指定时间段的审计日志。

返回值类型:void

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值