金仓数据库KingbaseES产品在系统初始化过程中会创建三个用户:数据库管理员(system)、安
全管理员(sso)、审计管理员(sao),通常简称为管理员、安全员和审计员。此外,还可以创建普
通用户来访问和运行数据库应用。其中 sao 用户是专门用于审计管理的用户,用户配置审计策略需要
使用该用户。
在initdb 完成后,SAO 用户的默认密码保存在参数 sysaudit.audit_table_password 和
sysaudit.local_sao_password 中,默认密码是 ‘12345678ab’ 。
1、开启审计功能
在配置文件种设置参数 shared_preload_libraries = ‘sysaudit’ ; sysaudit.enable
= on ;
2、修改sao用户密码
执行sql alter user sao with password ‘123abc’ ;
修改完,用户登录时会有错误信息(实际用户是登录成功的):could not connect to the
KinbaseES server: fe_sendauth: no password supplied
这是由于在集群环境里,SAO 需要区分主备节点后连接数据库,而连接数据库所用密码就是
sysaudit.audit_table_password 和 sysaudit.local_sao_password 所保存的密码。同时修改参数
sysaudit.audit_table_password 和 sysaudit.local_sao_password 后,数据库不再报错。
3、密码安全
如果明文将密码保存在数据库参数,必然会有安全问题。用户可以将这两个参数置为空:
alter system set sysaudit.audit_table_password='';
alter system set sysaudit.local_sao_password ='';
同时,修改 .encpwd 文件,用于免密登录:
sys_encpwd -H 127.0.0.1 -P 54321 -D security -U sao -W 123abc
sys_encpwd -H * -P 54321 -D * -U sao -W 123abc
[kingbase@dbhost03 ~]$ ksql -d test -U sao -h 127.0.0.1
Password for user sao:
[kingbase@dbhost03 ~]$ ksql -d security -U sao -h 127.0.0.1
ksql (V8.0) Type "help" for help.
security=>
密码可以通过如下方式解密:
cat .encpwd 127.0.0.1:54321:security:sao:MTIzYWJj :54321::sao:MTIzYWJj echo 'MTIz
YWJj' | base64 -d 123abc




