Hi Tiff, note that there is an absurd high maximum of databases possible inside a PostgreSQL database cluster. I think, the maximum is 4,294,950,911 but I'm sure you don't get that many users or databases anyway. ;-)
Cheers, Paul > On 07. Mar, 2020, at 23:35, Tiffany Thang <tiffanyth...@gmail.com> wrote: > > Thanks David and Paul. Because each user wants the ability to drop and > recreate their own databases, I want to impose a restriction on the database > names. I’ll just implement what Paul has suggested. > > Thanks. > > Tiff > > On Sat, Mar 7, 2020 at 2:35 AM Paul Förster <paul.foers...@gmail.com> wrote: > 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 user with 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 <tiffanyth...@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 privilege would allow the > > user to create any number of databases which I want to avoid. > > > > Thanks. > > > > Tiff >