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

PostgreSQL中创建带登录权限并加入已有角色的新角色报错,求助正确语法

PostgreSQL中创建带登录权限并加入已有角色的新角色报错,求助正确语法

嗨,我来帮你梳理下这个问题~

你遇到的报错是因为PostgreSQL的CREATE ROLE语法里,WITH关键字后面只能跟角色属性选项(比如LOGIN、PASSWORD、SUPERUSER这类),不能直接把另一个角色名放在WITH后面,所以数据库会把"role-one"当成一个不认识的选项,抛出错误。

要实现「创建带登录权限的新角色,并让它成为role-one的成员」,有两种常用的正确方式:

方式一:创建角色时直接指定所属角色

用IN ROLE子句来关联已有角色,一步到位:

CREATE ROLE "other_role" LOGIN IN ROLE "role-one";

方式二:先创建角色,再通过GRANT添加成员关系

如果需要分开操作,先创建带登录权限的角色,再用GRANT命令把新角色加入目标角色:

-- 第一步:创建带登录权限的新角色
CREATE ROLE "other_role" LOGIN;
-- 第二步:将other_role设置为role-one的成员
GRANT "role-one" TO "other_role";

另外如果需要给新角色设置密码等其他属性,直接在CREATE ROLE里补充即可,比如:

CREATE ROLE "other_role" LOGIN PASSWORD 'your_secure_password' IN ROLE "role-one";

备注:内容来源于stack exchange,提问作者red888

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 10:10:31