You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL启动脚本中切换数据库并授权public schema权限的问题

在PostgreSQL SQL启动脚本中为角色授予public schema权限的正确方式

你用到的\c dbname postgres是psql客户端专属的元命令,不属于PostgreSQL支持的标准SQL/PLpgSQL语法,所以直接放在纯SQL脚本里执行会触发语法错误。

解决方法

方式一:纯SQL脚本写法(推荐)

去掉脚本里的\c命令,确保执行脚本时已经连接到目标数据库dbname,并且以拥有足够权限的用户(比如postgres)身份执行。脚本内容仅保留标准SQL授权语句:

GRANT ALL ON SCHEMA public TO myrole;

执行脚本时通过Shell命令指定数据库和用户:

psql -d dbname -U postgres -f your_grant_script.sql

方式二:psql专属批量脚本写法(多数据库场景)

如果你的脚本需要在psql中执行并切换多个数据库,可以保留\c命令,但要明确这个脚本只能用psql客户端执行,不能作为纯SQL脚本直接提交给数据库。脚本内容如下:

\c dbname postgres
GRANT ALL ON SCHEMA public TO myrole;

权限精细化调整

如果不需要授予有效地_A操作全部Squarecom tmp对应的template费,夹 规范nor:

GRANT USAGE, CREATE ON SCHEMA public TO myrole;

内容的提问来源于stack exchange,提问作者Nathan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 02:57:11