首页 > 技术文章 > 如何修改SAO用户密码

kingbase 2021-10-29 11:02 原文

KingbaseES SAO 用户是专门用于审计管理的用户,用户配置审计策略需要使用该用户。在initdb 完成后,SAO  用户的默认密码保存在参数 sysaudit.audit_table_password 和 sysaudit.local_sao_password 中,默认密码是 ‘12345678ab’ 。以下以例子的形式,展示修改SAO用户密码的过程。

1、开启审计功能

设置参数:

shared_preload_libraries = 'liboracle_parser, synonym, plsql, force_view, plugin_debugger, plsql_plugin_debugger, plsql_plprofiler, ora_commands,kdb_ora_expr, sepapower, dblink, sys_kwr, sys_ksh, sys_spacequota, sys_stat_statements, backtrace, kdb_utils_function, sysaudit'
sysaudit.enable = on

2、修改SAO用户密码

alterr role sao with password '123abc'

修改完,用户登录时会有如下错误信息(实际用户是登录成功的):

2021-10-29 10:03:50.655 CST [27219] LOG:  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、密码安全

如果明文将密码保存在数据库参数,必然会有安全问题。用户可以将这两个参数置为空:

test=> alter system set sysaudit.audit_table_password='';
ALTER SYSTEM
test=> alter system set sysaudit.local_sao_password ='';
ALTER SYSTEM

同时,修改 .encpwd 文件,用于免密登录:

[c5@dbhost03 ~]$ sys_encpwd -H 127.0.0.1 -P 54321 -D security -U sao -W 123abc
[c5@dbhost03 ~]$ sys_encpwd -H \* -P 54321 -D \* -U sao -W 123abc


[c5@dbhost03 ~]$ ksql -d test -U sao -h 127.0.0.1
Password for user sao: 
[c5@dbhost03 ~]$ ksql -d security -U sao -h 127.0.0.1
ksql (V8.0)
Type "help" for help.

security=> 

密码可以通过如下方式解密:

[c5@dbhost03 ~]$ cat .encpwd
127.0.0.1:54321:security:sao:MTIzYWJj
*:54321:*:sao:MTIzYWJj

[c5@dbhost03 ~]$ echo 'MTIzYWJj' | base64 -d
123abc

  

推荐阅读