postgresql - pg_stat_statements_reset() 权限在 Google Cloud SQL PostgreSQL 上被拒绝

标签 postgresql google-cloud-sql

主要问题

由于权限不足,我无法执行函数 SELECT pg_stat_statements_reset(); 以分析查询优化的变化。 错误消息如下: 函数 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 位编译
  • 平台:谷歌云 SQL PostgreSQL
  • 用户:具有 cloudsqlsuperuser 角色的默认 postgres 用户

尝试的步骤

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

Related Question

最佳答案

Google Cloud SQL 支持 several modules for PostgreSQL扩展其功能。

其中一个扩展(模块)是:pg_stat_statements .它允许跟踪服务器执行的 SQL 语句的执行统计信息。要重置统计功能,请使用 pg_stat_statements_reset()。

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

  1. Connect to the PostgreSQL instance从 Cloud Shell 使用默认用户:postgres
gcloud sql connect [INSTANCE_ID] --user=postgres
  1. 连接到数据库时,create extension pg_stat_statements
CREATE EXTENSION pg_stat_statements
  1. 执行重置统计的功能。 默认情况下,只能由 super 用户执行:
SELECT pg_stat_statements_reset()
  1. (可选)授予其他用户重置统计数据的权限:
GRANT EXECUTE ON FUNCTION pg_stat_statements_reset() TO xuser;

关于postgresql - pg_stat_statements_reset() 权限在 Google Cloud SQL PostgreSQL 上被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53200947/

相关文章:

python - 如何使用 Python 迁移将 Heroku Django 应用程序的新模型表添加到远程 Heroku Postgres?

mysql - google compute engine VM启动时自动启动gcloud sql proxy

sql - Postgres JSON : get the first node value without knowing the key

sql - 在 Postgresql 中从 <MANY> 更新 <ONE>

google-cloud-platform - Google Cloud SQL 连接错误 - 403 : Access Not Configured - despite having enabled the API

csv - 大型 csv 数据上传到谷歌云 sql

google-app-engine - 如何在 Cloud SQL 中授权我的临时 Google 容器引擎实例?

mysql - Google Cloud SQL 选择另一个表中不存在的行

sql - 如何优化查询以计算行相关的日期时间关系?

PostgreSQL 中的 MySQL SET 类型?