You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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

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

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

你遇到的报错是因为PostgreSQL的CREATE ROLE语法里,WITH关键字后面只能跟角色属性选项(比如LOGINPASSWORDSUPERUSER这类),不能直接把另一个角色名放在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

火山引擎 最新活动