VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

安全函数

安全函数

  • gs_encrypt_aes128(encryptstr,keystr)

    描述:以keystr为密钥对encryptstr字符串进行加密,返回加密后的字符串。keystr的长度范围为1~16字节。支持的加密数据类型:目前数据库支持的数值类型,字符类型,二进制类型中的RAW,日期/时间类型中的DATE、TIMESTAMP、SMALLDATETIME。

    返回值类型:text

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

    示例:

    vastbase=# SELECT gs_encrypt_aes128('MPPDB','1234'); 
     
                               gs_encrypt_aes128 
    ------------------------------------------------------------------------------------- 
    gwditQLQG8NhFw4OuoKhhQJoXojhFlYkjeG0aYdSCtLCnIUgkNwvYI04KbuhmcGZp8jWizBdR1vU9CspjuzI0lbz12A= 
    (1 row)
    

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

  • gs_decrypt_aes128(decryptstr,keystr)

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

说明
此参数需要结合gs_encrypt_aes128加密函数共同使用。

返回值类型:text

示例:

vastbase=# SELECT gs_decrypt_aes128('gwditQLQG8NhFw4OuoKhhQJoXojhFlYkjeG0aYdSCtLCnIUgkNwvYI04KbuhmcGZp8jWizBdR1vU9CspjuzI0lbz12A=','1234'); 
 gs_decrypt_aes128  
------------------- 
 MPPDB 
(1 row)

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

  • gs_password_deadline

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

    返回值类型:interval

    示例:

    vastbase=# SELECT gs_password_deadline(); 
    gs_password_deadline    
    ------------------------- 
    83 days 17:44:32.196094 
    (1 row)
    
  • login_audit_messages

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

    返回值类型:元组

    示例:

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

    vastbase=# SELECT * FROM login_audit_messages(true); 
    username  | database |       logintime        |     mytype      | result |  client_conninfo    
    ------------+----------+------------------------+---------------+--------+-------------------- 
     vastbase    | vastbase | 2017-06-02 15:28:34+08 | login_success | ok     | vsql@[local] 
    (1 row)
    

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

    vastbase=# SELECT * FROM login_audit_messages(false) ORDER BY logintime desc limit 1; 
    username  | database |       logintime        |     mytype     | result |     client_conninfo      
    ------------+----------+------------------------+--------------+--------+------------------------- 
    (0 rows)
    

    — 查看自从最后一次认证通过以来失败的尝试次数、日期和时间。

    vastbase=# SELECT * FROM login_audit_messages(false); 
    username  | database |       logintime        |     mytype     | result |     client_conninfo      
    ------------+----------+------------------------+--------------+--------+------------------------- 
    (0 rows)
    
  • login_audit_messages_pid

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

    返回值类型:元组

    示例:

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

    vastbase=# SELECT * FROM login_audit_messages(true); 
    username  | database |       logintime        |     mytype      | result |  client_conninfo  
    ------------+----------+------------------------+---------------+-------- 
     vastbase    | postgres | 2017-06-02 15:28:34+08 | login_success | ok     | vsql@[local] 
    (1 row)
    

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

    vastbase=# SELECT * FROM login_audit_messages(false) ORDER BY logintime desc limit 1; 
    username  | database |       logintime        |     mytype     | result |    client_conninfo   
    ------------+----------+------------------------+--------------+--------
    (0 rows)
    

    — 查看自从最后一次认证通过以来失败的尝试次数、日期和时间。

    vastbase=# SELECT * FROM login_audit_messages(false); 
    username  | database |       logintime        |     mytype     | result |    client_conninfo    
    ------------+----------+------------------------+--------------+--------
    (0 rows)
    
  • inet_server_addr

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

    返回值类型:inet

    示例:

    vastbase=# SELECT inet_server_addr(); 
    inet_server_addr 
    ------------------ 
    10.10.0.13 
    (1 row)
    
说明
  • 上面是以客户端在10.10.0.50上,服务器端在10.10.0.13上为例。
  • 如果是通过本地连接,使用此接口显示为空。
  • inet_client_addr

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

    返回值类型:inet

    示例:

    vastbase=# SELECT inet_client_addr(); 
    inet_client_addr 
    ------------------ 
    10.10.0.50 
    (1 row)
    
说明
  • 上面是以客户端在10.10.0.50上,服务器端在10.10.0.13上为例。
  • 如果是通过本地连接,使用此接口显示为空。
  • pg_query_audit

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

    返回值类型:record

    函数返回字段如下:

名称 类型 描述
time timestamp with time zone 操作时间
type text 操作类型
result text 操作结果
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 远端端口

函数使用方法及示例请参考5.3.2查看审计结果。

  • pgxc_query_audit

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

    返回值类型:record

    函数返回字段同pg_query_audit函数。

    函数使用方法及示例请参考5.3.2查看审计结果。

  • pg_delete_audit

    描述:删除指定时间段的审计日志。 返回值类型:void 函数使用方法及示例请参考5.3.3维护审计日志。