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
(ну или тот, кто владеет кластером, а не базой) и она имеет все права для public
IP
VY
public
подключаться, т.е. кто угодно. но это не значит, что они могут создавать что-то в базеVY
A
rolinherit
может еще?A
\dn+
и смотрим права на схему, по умолчанию схемой public
владеет postrges
(ну или тот, кто владеет кластером, а не базой) и она имеет все права для public
public | 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
(ну или тот, кто владеет кластером, а не базой) и она имеет все права для public
A
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_db
VY
user_db
public
, т.е. будут работать только те GRANT-ы, которые были сделаны вами явно