HGDB确认数据库采用了sm3的连接认证方式

本文档详细介绍了PostgreSQL数据库中sysdba、syssso、syssao等用户的角色,pg_user和pg_shadow表的内容,以及密码加密方式。探讨了系统管理员、超级用户和其他角色的权限设置,以及数据库密码的安全策略。

highgo=# select * from pg_user;
    usename     | usesysid | usecreatedb | usesuper | userepl | usebypassrls |  passwd  |        valuntil        | useconfig 
----------------+----------+-------------+----------+---------+--------------+----------+------------------------+-----------
 sysdba         |     9999 | t           | f        | t       | f            | ******** | 2023-03-17 16:33:53+08 | 
 syssso         |     9998 | f           | f        | f       | f            | ******** | 2023-03-17 16:33:35+08 | 
 syssao         |     9997 | f           | f        | f       | f            | ******** | 2023-03-17 16:34:39+08 | 
 hg_replication |    16384 | f           | f        | t       | f            | ******** | 2022-03-16 14:43:12+08 | 
 hg_rewind      |    16385 | f           | f        | f       | f            | ******** | 2022-03-16 14:43:12+08 | 
(5 rows)

highgo=# select * from pg_shadow;
    usename     | usesysid | usecreatedb | usesuper | userepl | usebypassrls |                               passwd                                |        valuntil        | useconfig 
----------------+----------+-------------+----------+---------+--------------+---------------------------------------------------------------------+------------------------+-----------
 sysdba         |     9999 | t           | f        | t       | f            | sm3a62e9a53cd338b94b31db1f3fe8609441d17a05763b5346aefad2718c4711697 | 2023-03-17 16:33:53+08 | 
 syssso         |     9998 | f           | f        | f       | f            | sm3e7e0296d186aa1c9ab45244db9a3e85ca82d215dba4089062a076e2534547b5b | 2023-03-17 16:33:35+08 | 
 syssao         |     9997 | f           | f        | f       | f            | sm376368159947d96a6cf15aa4cea7147b7614413365bdc10dc92da655d2a5ae296 | 2023-03-17 16:34:39+08 | 
 hg_replication |    16384 | f           | f        | t       | f            | sm34db16278b84fa0426921ef3ef7aa7ecdeae6fc793abdd62ec5bf5ac121c2bea7 | 2022-03-16 14:43:12+08 | 
 hg_rewind      |    16385 | f           | f        | f       | f            | sm31d9eea98a6c51fcd8489058621c4a289cebe59f8a06b1e18c1b6119e291e0e57 | 2022-03-16 14:43:12+08 | 
(5 rows)


highgo=# show password_encryption ;
 password_encryption 
---------------------
 sm3
(1 row)

[root@db2 data]# cat pg_hba.conf
# Do not edit this file manually!
# It will be overwritten by Patroni!
local   all             all                                     sm3
host    all             all             0.0.0.0/0            sm3
host    all             all             ::1/128                 sm3
local   replication     all                                     sm3
host    replication     all             0.0.0.0/0            sm3
host    replication     all             ::1/128                 sm3

在Oracle数据库中,SM3是一种对称密码块算法,通常用于中国金融行业的数据加密标准。如果你想要创建一个自定义函数来实现SM3加密,你需要使用Oracle的PL/SQL编程环境,并利用Oracle提供的加密库或第三方工具,因为Oracle标准库里并不直接支持SM3。 以下是一个简单的步骤说明: 1. **创建函数模板**: 使用`CREATE OR REPLACE FUNCTION`语法创建一个名为`sm3_encrypt`的函数,接受需要加密的输入字符串(VARCHAR2类型)作为参数,返回一个同样类型的加密结果。 ```sql CREATE OR REPLACE FUNCTION sm3_encrypt (p_input IN VARCHAR2) RETURN VARCHAR2 AS BEGIN RETURN 'Not Implemented'; -- 这里需要替换为实际的SM3加密逻辑 END; / ``` 2. **添加SM3加密逻辑**: Oracle本身没有内置SM3的实现,你可以选择使用外部库如DBMS_CRYPTO包(如果安装了),或者编写自定义的加密代码(这将涉及一些低级操作,如位操作、循环等)。由于这超出了标准SQL的范围,这里假设你已经有一个合适的加密过程`sm3_cipher`。 ```sql CREATE OR REPLACE FUNCTION sm3_encrypt (p_input IN VARCHAR2) RETURN VARCHAR2 AS l_cipher VARCHAR2(4000); BEGIN l_cipher := sm3_cipher(p_input); -- 假设这个函数存在并能完成SM3加密 RETURN l_cipher; EXCEPTION WHEN OTHERS THEN RETURN NULL; -- 或者处理错误情况 END; / ``` 请注意,这只是一个基本示例,实际的SM3加密实现可能会更复杂,且在生产环境中应该考虑安全性,例如使用秘钥管理、错误处理以及对敏感信息的保护。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值