BUG #17901: Unexpected 'permission denied' error depending on which template used to create database
От | PG Bug reporting form |
---|---|
Тема | BUG #17901: Unexpected 'permission denied' error depending on which template used to create database |
Дата | |
Msg-id | 17901-93eacb513e503f43@postgresql.org обсуждение исходный текст |
Ответы |
Re: BUG #17901: Unexpected 'permission denied' error depending on which template used to create database
|
Список | pgsql-bugs |
The following bug has been logged on the website: Bug reference: 17901 Logged by: Moray Henderson Email address: moray.henderson@om.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); ^
В списке pgsql-bugs по дате отправления: