Re: Restrict user to create only one db with a specific name

Поиск
Список
Период
Сортировка
От Paul Förster
Тема Re: Restrict user to create only one db with a specific name
Дата
Msg-id 395AEEFA-8532-48E1-B1AA-8155DB162349@gmail.com
обсуждение исходный текст
Ответ на Restrict user to create only one db with a specific name  (Tiffany Thang <tiffanythang@gmail.com>)
Ответы Re: Restrict user to create only one db with a specific name
Список pgsql-general
Hi Tiff,

from what you say, it sounds that each user should have his or her own database.

Considering the other answers here already pointing out the difficulties, why don't you just create a database for each
userwith the same name as the username and grant him or her access to it. 

So, basically like this:

postgres=# create role "userA" login;
CREATE ROLE
postgres=# create database "userA" owner "userA";
CREATE DATABASE
postgres=# create role "userB" login;
CREATE ROLE
postgres=# create database "userB" owner "userB";
CREATE DATABASE

When, say, "userB" goes away, his or her data will go the way all things do:

drop database "userB";
drop role "userB";

Or did I misunderstand you?

Cheers,
Paul


> On 07. Mar, 2020, at 00:28, Tiffany Thang <tiffanythang@gmail.com> wrote:
>
> Hi,
> Is there a way in PostgreSQL 12 to restrict user to creating a database with a specific database name?
>
> For example, userA can only create a database with a name called mydb. Any other names would generate an error.
>
> If that is not possible, will it be possible then to limit userA to creating only one database? Granting the createdb
privilegewould allow the user to create any  number of databases which I want to avoid. 
>
> Thanks.
>
> Tiff




В списке pgsql-general по дате отправления:

Предыдущее
От: "David G. Johnston"
Дата:
Сообщение: Re: Restrict user to create only one db with a specific name
Следующее
От: stan
Дата:
Сообщение: Rules versus triggers