我已经创建了一个数据库并拥有我的用户名,它是rds_superuser组的一部分。我授予朋友对我的数据库的访问权限,每当他创建一个新表时,我都无法查看他的表并获得拒绝访问的错误代码42501。
此外,如果我试图将任何特权更改为我的用户帐户,我会得到一个错误,即我在他的表上没有权限。我该怎么解决这个问题?
发布于 2017-07-08 03:00:24
rds_superuser不同于PostgreSQL超级用户。
从一个PostgreSQL上最好的博客,2 nd象限安德鲁·邓斯坦写道,
亚马逊文档轻松地包含以下语句:“当您创建DB实例时,您创建的主用户系统帐户被分配给rds_superuser角色。rds_superuser角色类似于PostgreSQL超级用户角色(在本地实例中通常命名为postgres ),但有一些限制。但它到底有多棒?我最近遇到的一件事是,与通常的postgres超级用户不同,这个角色除了显式授予其他用户拥有的对象之外,没有其他访问权限。从表和函数特权的角度来看,它只是一个普通的用户。因此,如果您在RDS数据库中使用多个用户,即使其中一个甚至全部是rds_superusers,如果您还没有使用GRANT命令,您将变得非常熟悉。如果您的模式有多个用户拥有的对象,那么相关的“授予..。所有.“选项也失败了,因为您可能不会对它们拥有足够的特权。也许我们应该有一个“格兰特…”关于所有可能的…“会跳过那些你没有格兰特特权的事情。
来自我们自己的克雷格林格 (也是第二象限)
它一点也不超级。它不能加载库、访问文件系统、重写权限、不受限制地查看pg_stat_activity。
另一个用户Robins也指出,rds_superuser无法运行pg_dumpall,因此这可能是供应商锁定的一个来源。
https://dba.stackexchange.com/questions/178329
复制相似问题