PostgreSQL为新建用户添加默认postgres用户角色属性的方法
PostgreSQL 给新建用户分配postgres默认角色属性操作指南
问题背景
- 前期项目使用PostgreSQL默认超级用户
postgres完成环境部署,新项目要求数据库schema的指定所有者为user2,初始创建用户执行的命令如下:
create user user2 with password pw2;
- 连接数据库后执行元命令
\du,会以表格形式返回三类角色相关信息:角色名称、角色属性列表、所属成员。其中默认用户postgres自带5项核心角色属性:Superuser、Create role、Create DB、Replication、Bypass RLS,需要为user2添加上述全部属性。
属性配置方法
使用超级用户身份(默认用postgres账户即可)连接PostgreSQL实例,执行如下ALTER ROLE命令即可完成属性添加:
ALTER ROLE user2 WITH SUPERUSER CREATEROLE CREATEDB REPLICATION BYPASSRLS;
执行完成后再次运行\du,即可看到user2的角色属性列表已经和postgres的对应属性一致。
问题更新
完成上述属性配置后,可执行如下命令导入schema文件生成数据库结构:./psql -U user2 mydb < schema.sql但上述配置无法解决序列所有者不匹配的问题:执行包含
... owned by mydb.a_table.uid逻辑的脚本时,会触发报错sequence must be same owner as table it is linked to,该问题将单独发帖咨询。
内容的提问来源于stack exchange,提问作者Rainbow
相关产品推荐
相关产品推荐

