Google Cloud SQL PostrgreSQL上的pg_stat_statements_reset()权限被拒绝

Sea*_*uan 5 postgresql google-cloud-sql

主要问题

SELECT pg_stat_statements_reset();由于权限不足,我无法执行该功能以概要分析查询优化中的更改。错误消息显示为: permission denied for function pg_stat_statements_reset

我想知道是否还有其他方法可以在Cloud SQL PostgreSQL上重置pg_stats?

环境

  • PG版本:x86_64-pc-linux-gnu上的PostgreSQL 9.6.6,由gcc编译(Ubuntu 4.8.4-2ubuntu1〜14.04.3)4.8.4,64位
  • 平台:Google Cloud SQL PostgreSQL
  • 用户:具有cloudsqlsuperuser角色的默认postgres用户

尝试的步骤

我已经找到了关于该主题的先前答案,该答案建议pg_stat_statements_reset()应与通过云控制台创建的默认postgres用户一起使用。但是,列出的解决方案不起作用,它返回相同的权限被拒绝错误

相关问题

Paw*_*ara 8

Google Cloud SQL 支持PostgreSQL 的多个模块来扩展其功能。

扩展(模块)之一是:pg_stat_statements。它允许跟踪服务器执行的 SQL 语句的执行统计信息。使用 pg_stat_statements_reset() 函数来重置统计信息。

在使用扩展(模块)之前,必须安装它:

  1. 使用默认用户 postgres从 Cloud Shell连接到 PostgreSQL 实例
gcloud sql connect [INSTANCE_ID] --user=postgres
Run Code Online (Sandbox Code Playgroud)
  1. 连接到数据库时,创建扩展 pg_stat_statements
CREATE EXTENSION pg_stat_statements
Run Code Online (Sandbox Code Playgroud)
  1. 执行重置统计数据的函数。默认情况下,它只能由超级用户执行
SELECT pg_stat_statements_reset()
Run Code Online (Sandbox Code Playgroud)
  1. (可选)授予其他用户重置统计数据的权限:
GRANT EXECUTE ON FUNCTION pg_stat_statements_reset TO xuser;
Run Code Online (Sandbox Code Playgroud)