AWS RDS(PostgreSQL)-从 v9.6 升级到 v10.6-R1 后失去所有权限

AWS RDS(PostgreSQL)-从 v9.6 升级到 v10.6-R1 后失去所有权限

我刚刚将我的 AWS RDS DB 实例从 Postgresql 升级v9.6v10.6-R1。我使用仪表板下数据库部分中的“修改”选项卡手动执行了此操作。此后,作为主用户,我立即失去了在架构中执行任何操作的能力public

我可以毫无问题地连接到数据库,但是当我尝试在公共模式中的表上运行选择语句时看到此错误: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)

答案1

因此运行这两个语句解决了我的问题(无法访问public模式中的任何内容):

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

但是我的rds_superuser角色的属性没有改变,我非常想了解这是否正常(我不认为这是正常的):

     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                  | {}

相关内容