如何修改SAO用户密码
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
KINGBASE研究院