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
