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