Size: a a a

pgsql – PostgreSQL

2020 August 18

AG

Anton Goroshkin in pgsql – PostgreSQL
Есть какие-то расширения по нечеткому поиску помимо pg_trgm? Что можете посоветовать?
источник

A

Andrey in pgsql – PostgreSQL
всем привет, обновился с 9.6 до 12 версии и сейчас заметили, что пользователям, которым давались права только на чтение в 9.6, в 12 версии они могут создавать таблицы, хотя я смотрю
\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      |         |            |


но под пользователем readonly или andrey могу создавать таблицы в db_production
источник

SS

Sergii Serogin in pgsql – PostgreSQL
Andrey
всем привет, обновился с 9.6 до 12 версии и сейчас заметили, что пользователям, которым давались права только на чтение в 9.6, в 12 версии они могут создавать таблицы, хотя я смотрю
\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      |         |            |


но под пользователем readonly или andrey могу создавать таблицы в db_production
так а что в их роле?
источник

A

Andrey in pgsql – PostgreSQL
Sergii Serogin
так а что в их роле?
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

Sergii Serogin in pgsql – PostgreSQL
rolcreatedb == t
источник

SS

Sergii Serogin in pgsql – PostgreSQL
хотя не прав
источник

SS

Sergii Serogin in pgsql – PostgreSQL
rolinherit может еще?
источник

VY

Victor Yegorov in pgsql – PostgreSQL
\dn+ и смотрим права на схему, по умолчанию схемой public владеет postrges (ну или тот, кто владеет кластером, а не базой) и она имеет все права для public
оно так исторически, а не только на 12
источник

IP

Igor Poteryaev in pgsql – PostgreSQL
Похоже на то, что roleinherit даёт andrey права роли db_user ибо andrey=c/user_db означает, что c (CONNECT) granted ролью db_user
источник

VY

Victor Yegorov in pgsql – PostgreSQL
эм… к базе может public подключаться, т.е. кто угодно. но это не значит, что они могут создавать что-то в базе
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Igor Poteryaev
Похоже на то, что roleinherit даёт andrey права роли db_user ибо andrey=c/user_db означает, что c (CONNECT) granted ролью db_user
это показывает того, кто выдал право подключаться
источник

A

Andrey in pgsql – PostgreSQL
Sergii Serogin
rolinherit может еще?
надо убрать?
источник

A

Andrey in pgsql – PostgreSQL
Victor Yegorov
\dn+ и смотрим права на схему, по умолчанию схемой public владеет postrges (ну или тот, кто владеет кластером, а не базой) и она имеет все права для public
оно так исторически, а не только на 12
public    | postgres | postgres=UC/postgres+| standard public schema
          |          | =UC/postgres        +|
          |          | powerbi=U/postgres  +|
          |          | readonly=U/postgres +|
          |          | andrey=U/postgres    |
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Andrey
public    | postgres | postgres=UC/postgres+| standard public schema
          |          | =UC/postgres        +|
          |          | powerbi=U/postgres  +|
          |          | readonly=U/postgres +|
          |          | andrey=U/postgres    |
под каким пользователем миграции вносите (DDL)?
источник

A

Andrey in pgsql – PostgreSQL
Victor Yegorov
\dn+ и смотрим права на схему, по умолчанию схемой public владеет postrges (ну или тот, кто владеет кластером, а не базой) и она имеет все права для public
оно так исторически, а не только на 12
но в 9.6 права были ограничены для пользователей andrey и readonly, они не могли создавать таблицы, только селекты делать
источник

A

Andrey in pgsql – PostgreSQL
Victor Yegorov
под каким пользователем миграции вносите (DDL)?
отдельный пользователь для прод базы - user_db
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Andrey
отдельный пользователь для прод базы - user_db
ALTER SCHEMA public OWNER TO user_db;
REVOKE ALL ON SCHEMA public FROM public;
источник

N

Newman in pgsql – PostgreSQL
Привет всем.  Кто может, подсказать по траблшутингу Postgres. Бывает периоды когда, отваливается соеденения от БД, и также бывает когда Postgres нагружает CPU. Логи читаю, но конечно разные ошибки с кюрями мне особо ничего не говорят т.к. я не БД админ/дев . С чего начать анализ производительности узких мест, может тулзы есть какие?
источник

A

Andrey in pgsql – PostgreSQL
Victor Yegorov
ALTER SCHEMA public OWNER TO user_db;
REVOKE ALL ON SCHEMA public FROM public;
дать права на схему public пользователю user_db
отозвать права на схему public у всех
так получается?
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Andrey
дать права на схему public пользователю user_db
отозвать права на схему public у всех
так получается?
- сменить владельца, а не дать права
- отобрать права у public, т.е. будут работать только те GRANT-ы, которые были сделаны вами явно
источник