web-dev-qa-db-ja.com

AWS RDS(PostgreSQL)-v9.6からv10.6-R1にアップグレードした後、マスターユーザーはすべての権限を失いました

AWS RDS DBインスタンスをPostgresqlからアップグレードしましたv9.6からv10.6-R1。これは、ダッシュボードの[データベース]セクションの[変更]タブを使用して手動で行いました。その直後、マスターユーザーとして、publicスキーマで操作を実行する機能を失いました。

問題なくDBに接続できますが、パブリックスキーマのテーブルで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)

何がうまくいかなかったか、これを修正するために何ができるかについてのアイデアはありますか?私はすべての提案に感謝します。

ありがとうございました

3
Michael Nwani

したがって、これらの2つのステートメントを実行すると、私の問題が解決されました(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                  | {}
4
Michael Nwani