Saq*_*Ali 24 postgresql amazon-web-services amazon-rds
我有一个连接到 RDS 实例 (Postgresql) 的 AWS EC2 实例。当我创建 RDS 实例时,我告诉它数据库 root 的用户名是:my_user1
,密码是password1
. 现在我正在尝试创建一个角色和一个超级用户。但它失败了:
$ createuser -P -d -s -e my_user2 --host myhost.com -U my_user1
Enter password for new role: XXXYYYZZZ
Enter it again: XXXYYYZZZ
Password: password1
CREATE ROLE my_user2 PASSWORD 'md5999999c0101a1d64afd57575e06f999c' SUPERUSER CREATEDB CREATEROLE INHERIT LOGIN;
createuser: creation of new role failed: ERROR: must be superuser to create superusers
$
Run Code Online (Sandbox Code Playgroud)
当我在没有-s
标志的情况下重复命令时,它可以工作:
$ createuser -P -d -e my_user2 --host myhost.com -U my_user1
Enter password for new role:
Enter it again:
Password:
CREATE ROLE my_user2 PASSWORD 'md5999999c0101a1d64afd57575e06f888c' NOSUPERUSER CREATEDB NOCREATEROLE INHERIT LOGIN;
$
Run Code Online (Sandbox Code Playgroud)
很明显,my_user1
没有权限创建超级用户。但这是我告诉 RDS 的用户是我的管理员用户!如果my_user1
没有创建超级用户的权限,谁有权限?我如何从 AWS 获取他们的用户名/密码?
cee*_*yoz 25
RDS 实例由亚马逊管理。因此,为了防止您破坏复制等操作,您的用户 - 即使是您在创建实例时设置的 root 用户 - 将不具有完全的超级用户权限。
http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.PostgreSQL.CommonDBATasks.html
创建数据库实例时,您创建的主用户系统帐户会分配给 rds_superuser 角色。rds_superuser 角色是一个预定义的 Amazon RDS 角色,类似于 PostgreSQL 超级用户角色(在本地实例中通常命名为 postgres),但有一些限制。与 PostgreSQL 超级用户角色一样,rds_superuser 角色对您的数据库实例拥有最多权限,除非他们需要对数据库实例的最大访问权限,否则您不应将此角色分配给用户。
归档时间: |
|
查看次数: |
48467 次 |
最近记录: |