无法将数据库导入新Cloud SQL实例:ALTER DEFAULT PRIVILEGES权限报错
问题分析与解决方案
报错原因
导出的SQL文件中包含ALTER DEFAULT PRIVILEGES语句,用于配置readonly用户的默认权限。PostgreSQL要求执行该语句的用户必须是目标角色(即readonly)的成员,但你在新实例中仅创建了readonly用户,未将导入使用的proxyuser添加为readonly角色的成员,因此触发权限错误。
解决步骤
- 连接到新的Cloud SQL实例,执行以下SQL,将
proxyuser加入readonly角色:
可通过Cloud SQL控制台的SQL编辑器、GRANT readonly TO proxyuser;gcloud sql connect命令或psql客户端执行。 - 重新执行导入操作,仍选择
proxyuser作为操作用户。 - 导入完成后,若不需要
proxyuser保留readonly角色权限,可执行以下语句撤销:REVOKE readonly FROM proxyuser;
补充说明
导入源是副本数据库不影响问题本质,因为副本实例的导出文件同样会包含原实例的权限配置语句,核心问题始终是导入用户的角色成员关系缺失。
内容的提问来源于stack exchange,提问作者Salman Muzammil
相关产品推荐
相关产品推荐

