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

m10*_*10i 4 postgresql permissions upgrade amazon-rds

我刚刚将我的 AWS RDS 数据库实例从 Postgresql 升级v9.6v10.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                  | {}                                                          |

Run Code Online (Sandbox Code Playgroud)

此外,运行ANALYZE VERBOSE;有效,我可以统计公共表的信息。

如果有帮助,这是我的默认访问权限

master_prod=> \ddp
         Default access privileges
 Owner | Schema | Type | Access privileges
-------+--------+------+-------------------
(0 rows)
Run Code Online (Sandbox Code Playgroud)

关于出了什么问题或我可以做些什么来解决这个问题的任何想法?我感谢所有的建议。

谢谢

m10*_*10i 5

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

master_prod=> ALTER SCHEMA public OWNER to freetiersuperuser;
ALTER SCHEMA
master_prod=> GRANT ALL ON SCHEMA public TO freetiersuperuser;
GRANT
Run Code Online (Sandbox Code Playgroud)

但是我的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                  | {}
Run Code Online (Sandbox Code Playgroud)