BUG #17901: Unexpected 'permission denied' error depending on which template used to create database

From: PG Bug reporting form <noreply(at)postgresql(dot)org>
To: pgsql-bugs(at)lists(dot)postgresql(dot)org
Cc: moray(dot)henderson(at)om(dot)org
Subject: BUG #17901: Unexpected 'permission denied' error depending on which template used to create database
Date: 2023-04-17 11:33:28
Message-ID: 17901-93eacb513e503f43@postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

The following bug has been logged on the website:

Bug reference: 17901
Logged by: Moray Henderson
Email address: moray(dot)henderson(at)om(dot)org
PostgreSQL version: 15.2
Operating system: Windows 10 Pro 22H2
Description:

In PostgreSQL 15.2 a user with 'CREATEDB NOINHERIT' permission can create a
new database and tables from template1, but receives 'permission denied'
when creating tables in a database created from template0. Is that expected
behaviour? (I'm a little hazy on exactly how 'noinherit' is supposed to be
used: I... inherited it!)

The cluster was initialised with ICU locales:
.\initdb --locale-provider icu --icu-locale en-GB --locale en-GB-x-icu -A
md5 -U postgres -W -D 'C:\ProgramData\PostgreSQL\15\data'
I do not believe template1 has been modified from its default since the
cluster was initialised.

postgres=> SELECT * FROM version();
version
------------------------------------------------------------
PostgreSQL 15.2, compiled by Visual C++ build 1914, 64-bit
(1 row)
postgres=# CREATE ROLE dbadmin LOGIN CREATEDB NOINHERIT PASSWORD
'Passw0rd';
CREATE ROLE
postgres=# \c - dbadmin
Password for user dbadmin:
You are now connected to database "postgres" as user "dbadmin".
postgres=> CREATE DATABASE d0 TEMPLATE template0;
CREATE DATABASE
postgres=> CREATE DATABASE d1 TEMPLATE template1;
CREATE DATABASE
postgres=> \c d1
You are now connected to database "d1" as user "dbadmin".
d1=> CREATE TABLE t (i int);
CREATE TABLE
d1=> \c d0
You are now connected to database "d0" as user "dbadmin".
d0=> CREATE TABLE t (i int);
ERROR: permission denied for schema public
LINE 1: create table t (i int);
^

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message PG Bug reporting form 2023-04-17 11:34:48 BUG #17902: export/import tenant not possible due to PG internal id on jsonB fields.
Previous Message Thomas Munro 2023-04-16 22:32:48 Re: BUG #17900: llvm-jit uses deprecated symbols in LLVM 16