Я только что обновил свой инстанс БД 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 | {}