小编And*_*vis的帖子

数据库所有者的特权;应用用户

快速版本:

我应该发出什么命令来启用数据库所有者以允许它访问此数据库中的表,并且这可以从该所有者的帐户中完成吗?


更长的版本:

我正在 RDS 上创建一个数据库。我有一个在亚马逊上配置的“root”用户。

Amazon 会自动创建组角色“rds_superuser”,该角色非常有特权,但实际上并不是超级用户。

我正在为应用程序创建一个数据库和用户,如下所示:

create database master_integration;
CREATE ROLE master_application LOGIN ENCRYPTED PASSWORD '...' VALID UNTIL 'infinity';
GRANT ALL ON DATABASE master_integration TO GROUP rds_superuser WITH GRANT OPTION;
GRANT ALL ON DATABASE master_integration TO GROUP master_application;

\c master_integration;
ALTER DEFAULT PRIVILEGES GRANT INSERT, SELECT, UPDATE, DELETE, TRUNCATE, REFERENCES, TRIGGER ON TABLES TO rds_superuser;
Run Code Online (Sandbox Code Playgroud)

我更新了这个脚本以反映 Craig Ringer 关于我应该如何处理这个问题的建议。

当应用程序连接(使用 master_application 凭据)时,它会创建(并因此拥有)这些表。

我的问题是我不能使用我的管理 (rootish) 登录来运行查询,因为该用户在表上没有权限。

我以前通过从应用程序帐户运行以下命令来解决这个问题:

GRANT ALL privileges ON ALL TABLES IN SCHEMA public to rds_superuser; …
Run Code Online (Sandbox Code Playgroud)

postgresql amazon-rds

15
推荐指数
1
解决办法
2万
查看次数

标签 统计

amazon-rds ×1

postgresql ×1