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

Postgres将用户加入对象所属角色未继承权限是否为预期行为

问题解答

结论

该报错属于Postgres的默认预期行为,你的操作逻辑存在错误。

错误原因

你对Postgres角色继承的GRANT语法方向理解完全颠倒:
Postgres中GRANT <角色A> TO <角色B>的含义是角色B成为角色A的成员,角色B可以继承角色A的全部权限。你执行的GRANT "user2" TO "user1"实际是让user1继承user2的权限,和你想要实现的「user2继承user1权限」需求完全相反。

正确操作

如果要让user2继承user1对自身所有对象的权限,替换原授权语句为以下内容即可:

GRANT "user1" TO "user2";

执行完成后user2登录即可正常查询test01表。

补充说明

Postgres默认创建的角色都会开启INHERIT属性,只有开启该属性的角色才会自动继承所属角色的权限,你可以通过以下命令确认属性状态:

SELECT rolname, rolinherit FROM pg_roles WHERE rolname IN ('user1', 'user2');

如果返回结果中rolinherit字段值为t则代表继承属性正常开启,如果为f可通过以下命令修改:

ALTER ROLE "user2" SET INHERIT TRUE;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 23:15:05