Bri*_*ian 4 amazon-rds postgresql-9.6
PostgreSQL said: permission denied for relation pg_authid
Run Code Online (Sandbox Code Playgroud)
是pg_authid刚刚在锁定下来,因为RDS的所有情况对AWS RDS不可用super的角色?我的角色创建了表,所以pg_catalog如果我正确阅读 psql 文档,默认情况下应该会出现(并且不需要添加到搜索路径)。只是需要SELECT,而不是创造能力。
无法找到明确的 AWS RDS 文档页面,其中说pg_catalog.pg_authid在任何上下文中都不允许,但我继承了一个文档项目,该项目依赖于能够在数据库中的 pg_authid 表上形成查询和连接我刚刚创建。我总是得到上述许可被拒绝。
尝试添加一个postgres角色并将其提供给我自己,并将数据库显式添加到我的搜索路径中,但无济于事。
小智 7
目录 pg_authid 包含有关数据库授权标识符(角色)的信息。您可能知道,由于 RDS 即服务的托管性质,不幸的是,不可能在 RDS 中拥有完整的超级用户角色。
不幸的是,由于上面提到的是 RDS 的限制,如果访问“pg_authid”对于执行您的业务非常必要,我建议您寻找 EC2 托管的 Postgres(社区 Postgres)作为选项。查看“pg_authid”内容的解决方法是使用“pg_roles”,但密码被屏蔽,不会告诉您是否加密。
请注意,并非所有目录都被限制在 RDS 上读取,下面是 SQL 查询,它显示了 rds_superuser/master 用户对每个目录的权限。
SELECT relname, has_table_privilege('rds_superuser',relname,'SELECT') as SELECT,has_table_privilege('rds_superuser',relname,'UPDATE') as UPDATE,has_table_privilege('rds_superuser',relname,'INSERT') as INSERT,has_table_privilege('rds_superuser',relname,'TRUNCATE') as TRUNCATE FROM pg_class c , pg_namespace n where n.oid = c.relnamespace and n.nspname in ('pg_catalog') and relkind='r';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3576 次 |
| 最近记录: |