修改search_path导致的审计与安全函数不可用
2026/6/12 21:52:35 网站建设 项目流程

文章目录

  • 环境
  • 症状
  • 问题原因
  • 解决方案

环境

系统平台:N/A
版本:4.3.4.6

症状

使用 set_secure_param 等函数时报错该函数不存在:

highgo=>selectset_secure_param('hg_ShowLoginInfo','off');
错误: 函数 set_secure_param(unknown, unknown) 不存在 LINE 1: select set_secure_param('hg_ShowLoginInfo','off'); ^ HINT: 没有匹配指定名称和参数类型的函数. 您也许需要增加明确的类型转换. highgo=> select show_secure_param(); 错误: 函数 show_secure_param() 不存在 LINE 1: select show_secure_param(); ^ HINT: 没有匹配指定名称和参数类型的函数. 您也许需要增加明确的类型转换.

问题原因

search_path参数被修改,public选项被删除。

[root@localhostdata]# psql -U syssso -d highgoPasswordforusersyssso: 注意:-------------------------------------------LoginUser: syssso Logintime:2019-11-2810:25:00.636237+08Login Address:[local]LastLoginStatus: SUCCESS Login Failures:0Valied Until: infinity-------------------------------------------psql(4.3.4.6)Type"help"forhelp.highgo=>showsearch_path;search_path-------------"$user"(1row)

解决方案

修改search_path,添加public如下:

search_path='"$user",public'[root@localhostdata]# psql -U syssso -d highgoPasswordforusersyssso: 注意:-------------------------------------------LoginUser: syssso Logintime:2019-11-2810:24:08.47413+08Login Address:[local]LastLoginStatus: FAILED Login Failures:1Valied Until: infinity-------------------------------------------psql(4.3.4.6)Type"help"forhelp.highgo=>selectshow_secure_param();show_secure_param-----------------------------Securelevel=table,+hg_SepOfPowers=on,+hg_MAControl=on,+hg_RowSecure=off,+hg_PwdValidUntil=5,+hg_PwdErrorLock=5,+hg_ShowLoginInfo=on,+hg_ClientNoInput=30min,+hg_PwdRule=on,+(1row)highgo=>selectset_secure_param('hg_ShowLoginInfo','off');set_secure_param---------------------------------setconfiguration successfully.(1row)

至此可正常使用审计与安全相关操作函数。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询