CloudSQL导入PostgreSQL时pg_catalog函数权限拒绝报错
解决CloudSQL PostgreSQL导入时权限不足的问题
问题原因
CloudSQL作为托管PostgreSQL服务,对系统级函数pg_catalog.pg_replication_origin_advance的权限操作做了限制——即使是postgres用户也没法给cloudsqlsuperuser角色授予这个函数的权限,但gcloud sql export导出的SQL文件里自动包含了这条授权语句,导致导入时触发权限错误。
解决步骤
- 先把存储桶里的SQL转储文件下载到本地:
gsutil cp gs://你的存储桶路径/导出的文件.sql ./本地路径/ - 用文本编辑器打开下载的SQL文件,找到并删除这条语句:
GRANT ALL ON FUNCTION pg_catalog.pg_replication_origin_advance(text, pg_lsn) to cloudsqlsuperuser; - 把修改后的文件重新上传回存储桶:
gsutil cp ./本地路径/修改后的文件.sql gs://你的存储桶路径/ - 最后重新执行
gcloud sql import命令导入修改后的文件即可
内容的提问来源于stack exchange,提问作者Kaizoku
相关产品推荐
相关产品推荐

