PostgreSQL Bugs

Collected from the PG bugs email list.

Bug ID16374
PG Version10.10
OScentos
Opened2020-04-17 12:50:06+00
Reported bywang yakun
StatusNew

Body of first available message related to this bug follows.

The following bug has been logged on the website:

Bug reference:      16374
Logged by:          wang yakun
Email address:      (redacted)
PostgreSQL version: 10.10
Operating system:   centos
Description:        

> [postgres10@pgcore-split-0001 ~]$ psql -Upostgres
> psql (10.10)
> Type "help" for help.
>
> postgres=# create user root with login nosuperuser inherit createdb
createrole replication;
> CREATE ROLE
> postgres=# create role rdsgroup with nologin nosuperuser inherit
nocreatedb nocreaterole noreplication;
> CREATE ROLE
> postgres=# grant pg_monitor, pg_read_all_stats, pg_signal_backend,
pg_stat_scan_tables, rdsgroup to root;
> GRANT ROLE
> postgres=# \c postgres root
> You are now connected to database "postgres" as user "root".
> postgres=> CREATE DATABASE db1 WITH ENCODING = 'UTF8';
> CREATE DATABASE
> postgres=> create user user1 password '';
> NOTICE:  empty string is not a valid password, clearing password
> CREATE ROLE
> postgres=> alter user user1 with login;
> ALTER ROLE
> **postgres=> alter database db1 owner to user1;**
> **2020-04-17 16:37:04.328 CST [4712] ERROR:  must be member of role
"user1"**
> **2020-04-17 16:37:04.328 CST [4712] STATEMENT:  alter database db1 owner
to user1;**
> **ERROR:  must be member of role "user1"**

My user is "root".I know that before execute "alter database" stmt, I can
login with user1 and execute "grant user1 to db1", so this "alter database"
stmt will work.

However, "user1" is my created, and "db1" is my created too. Why couldn't I
chenge owner of "db1" to "user1" directly?

Messages

DateAuthorSubject
2020-04-17 12:50:06+00PG Bug reporting formBUG #16374: I can't directly change owner from my created database to my created user.
2020-04-17 13:29:36+00Tom LaneRe: BUG #16374: I can't directly change owner from my created database to my created user.