Re: SQL command : ALTER DATABASE OWNER TO

From: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
To: gparc(at)free(dot)fr
Cc: Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at>, Daniel Gustafsson <daniel(at)yesql(dot)se>, pgsql-docs <pgsql-docs(at)lists(dot)postgresql(dot)org>
Subject: Re: SQL command : ALTER DATABASE OWNER TO
Date: 2024-01-24 16:50:17
Message-ID: CAKFQuwbjczTu0H2Jcxkt=SnCx73Crgos0vDpd12KEBxM-Rrh3w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-docs

On Wed, Jan 24, 2024 at 9:23 AM <gparc(at)free(dot)fr> wrote:-

> [postgres] $ psql
> psql (14.10)
>
>
You really should add commentary, especially since you never demonstrated
the tst role (I advise picking different names for all of the objects in
the future) being unable to login. Which they should be able to since
public is shown to have "c" connect privileges (=Tc/tst)

> [postgres(at)PGDEV14] postgres=# create user tst password 'tst';
> CREATE ROLE
> [postgres(at)PGDEV14] postgres=# create database tst owner = tst;
> CREATE DATABASE
>

This next command is pointless, it is a no-op, as soon as you made them
owner of the tst database they already had all privileges to it, granted by
the same user that created the database. And only it, that command is not
recursing through the database into schemas and tables and adding more
permissions. That isn't how this all works, a database is an object.
While it is also a concept that encompasses the entire schema within it the
permissions system only cares about the first definition.

[postgres(at)PGDEV14] postgres=# grant all on database tst to tst;
> GRANT
> [postgres(at)PGDEV14] postgres=# \l+ tst
> Liste des bases de données
> Nom | Propriétaire | Encodage | Collationnement | Type caract. | Droits
> d'accès | Taille | Tablespace | Description
>
> -----+--------------+----------+-----------------+--------------+----------------+---------+------------+-------------
> tst | tst | UTF8 | fr_FR.UTF-8 | fr_FR.UTF-8 | =Tc/tst
> +| 9809 kB | pg_default |
> | | | | |
> tst=CTc/tst | | |
> (1 ligne)
>
>
What are you trying to demonstrate here?

> [postgres(at)PGDEV14] tst=# \dn+ tst
> Liste des schémas
> Nom | Propriétaire | Droits d'accès | Description
> -----+--------------+----------------+-------------
> tst | tst | |
> (1 ligne)
>
>
David J.

In response to

Responses

Browse pgsql-docs by date

  From Date Subject
Next Message Alvaro Herrera 2024-01-24 16:56:39 Re: SQL command : ALTER DATABASE OWNER TO
Previous Message gparc 2024-01-24 16:41:29 Re: SQL command : ALTER DATABASE OWNER TO