AG
Size: a a a
AG
A
\l+
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges | Size | Tablespace | Description
-------------------------+----------+----------+-------------+-------------+-----------------------+---------+------------+--------------------------------------------
db_production | user_db | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =Tc/user_db +| 303 GB | pg_default |
| | | | | user_db=CTc/user_db +| | |
| | | | | powerbi=c/user_db +| | |
| | | | | readonly=c/user_db +| | |
| | | | | andrey=c/user_db | | |
SS
\l+
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges | Size | Tablespace | Description
-------------------------+----------+----------+-------------+-------------+-----------------------+---------+------------+--------------------------------------------
db_production | user_db | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =Tc/user_db +| 303 GB | pg_default |
| | | | | user_db=CTc/user_db +| | |
| | | | | powerbi=c/user_db +| | |
| | | | | readonly=c/user_db +| | |
| | | | | andrey=c/user_db | | |
A
SELECT * FROM pg_roles WHERE rolname='andrey';
rolname | rolsuper | rolinherit | rolcreaterole | rolcreatedb | rolcanlogin | rolreplication | rolconnlimit | rolpassword | rolvaliduntil | rolbypassrls | rolconfig | oid
---------+----------+------------+---------------+-------------+-------------+----------------+--------------+-------------+---------------+--------------+-----------+---------
andrey | f | t | f | f | t | f | -1 | ******** | | f | | 3046296
(1 row)
SS
rolcreatedb == tSS
SS
rolinherit может еще?VY
\dn+ и смотрим права на схему, по умолчанию схемой public владеет postrges (ну или тот, кто владеет кластером, а не базой) и она имеет все права для publicIP
VY
public подключаться, т.е. кто угодно. но это не значит, что они могут создавать что-то в базеVY
A
rolinherit может еще?A
\dn+ и смотрим права на схему, по умолчанию схемой public владеет postrges (ну или тот, кто владеет кластером, а не базой) и она имеет все права для publicpublic | postgres | postgres=UC/postgres+| standard public schema
| | =UC/postgres +|
| | powerbi=U/postgres +|
| | readonly=U/postgres +|
| | andrey=U/postgres |
VY
public | postgres | postgres=UC/postgres+| standard public schema
| | =UC/postgres +|
| | powerbi=U/postgres +|
| | readonly=U/postgres +|
| | andrey=U/postgres |
A
\dn+ и смотрим права на схему, по умолчанию схемой public владеет postrges (ну или тот, кто владеет кластером, а не базой) и она имеет все права для publicA
VY
ALTER SCHEMA public OWNER TO user_db;
REVOKE ALL ON SCHEMA public FROM public;
N
A
ALTER SCHEMA public OWNER TO user_db;
REVOKE ALL ON SCHEMA public FROM public;
user_dbVY
user_dbpublic, т.е. будут работать только те GRANT-ы, которые были сделаны вами явно