Назад | Перейти на главную страницу

AWS RDS (PostgreSQL) - потеряны все привилегии после обновления с v9.6 до v10.6-R1

Я только что обновил свой инстанс БД AWS RDS с Postgresql v9.6 к v10.6-R1. Я сделал это вручную, используя вкладку «Изменить» в разделе «Базы данных» на панели инструментов. Сразу после этого, как главный пользователь, я потерял возможность выполнять какие-либо операции в public схема.

Я могу подключиться к БД без проблем, но вижу эту ошибку, когда пытаюсь запустить оператор select для таблиц в общедоступной схеме: ERROR: permission denied for schema public

Похоже, что мой rds_superuser пользователь больше не может войти в систему (freetiersuperuser это имя моего главного пользователя, хотя его имя вводит в заблуждение):

master_prod=> \du+
                                                                       List of roles
     Role name     |                         Attributes                         |                          Member of                          | Description
-------------------+------------------------------------------------------------+-------------------------------------------------------------+-------------
 freetiersuperuser | Create role, Create DB                                    +| {rds_superuser}                                             |
                   | Password valid until infinity                              |                                                             |
 rds_iam           | Cannot login                                               | {}                                                          |
 rds_password      | Cannot login                                               | {}                                                          |
 rds_replication   | Cannot login                                               | {}                                                          |
 rds_superuser     | Cannot login                                               | {pg_monitor,pg_signal_backend,rds_replication,rds_password} |
 rdsadmin          | Superuser, Create role, Create DB, Replication, Bypass RLS+| {}                                                          |
                   | Password valid until infinity                              |                                                             |
 rdsrepladmin      | No inheritance, Cannot login, Replication                  | {}                                                          |

Кроме того, работает ANALYZE VERBOSE; работает, и я могу получить статистическую информацию для своих общедоступных таблиц.

Есть идеи относительно того, что пошло не так, или что я могу сделать, чтобы это исправить? Я ценю все предложения.

Спасибо

Изменить: вот мои права доступа по умолчанию

master_prod=> \ddp
         Default access privileges
 Owner | Schema | Type | Access privileges
-------+--------+------+-------------------
(0 rows)

Таким образом, выполнение этих двух операторов разрешило мою проблему (невозможность доступа к чему-либо в public схема):

master_prod=> ALTER SCHEMA public OWNER to freetiersuperuser;
ALTER SCHEMA
master_prod=> GRANT ALL ON SCHEMA public TO freetiersuperuser;
GRANT

Однако мой rds_superuser атрибуты role не изменились, и я определенно хотел бы понять, нормально ли это (я так не думаю):

     Role name     |                         Attributes                         |                          Member of
-------------------+------------------------------------------------------------+-------------------------------------------------------------
 freetiersuperuser | Create role, Create DB                                    +| {rds_superuser}
                   | Password valid until infinity                              |
 rds_iam           | Cannot login                                               | {}
 rds_password      | Cannot login                                               | {}
 rds_replication   | Cannot login                                               | {}
 rds_superuser     | Cannot login                                               | {pg_monitor,pg_signal_backend,rds_replication,rds_password}
 rdsadmin          | Superuser, Create role, Create DB, Replication, Bypass RLS+| {}
                   | Password valid until infinity                              |
 rdsrepladmin      | No inheritance, Cannot login, Replication                  | {}