RDS postgres 上的主用户无法向新用户授予模式权限
Master user on RDS postgres can not grant schema privileges to new user
我在 RDS 实例上有大约 5 个测试 postgres 数据库。到目前为止,所有这些都已创建并且 运行 使用 Master_user
(在实例创建时创建)。
我现在正在尝试创建 5 个新用户并分别为每个数据库授予所有权限。我尝试了 Pgadmin4 Grant 向导,但我得到了任何授予选项的权限被拒绝错误。 Grant ALL
不起作用,Grant Create, Insert
等也不起作用。可能是什么问题??
我刚刚用 --no-owner --no-acl
备份了所有数据库,重命名数据库并创建新所有者的新数据库。恢复每个所有者的每个备份并实现我想要的。
解决方案是使用实例创建的主数据库作为模板,这样主用户就可以完全访问它。我认为他们只是想限制人们在同一个 RDS 上创建多个数据库..
假设我们以 rds_superuser 的身份连接到数据库,那么我们需要执行以下步骤:
- 将关系所有者授予 rds_superuser(能够 "become" 它)
- 成为所有者
- 授予
例如:
rds_superuser@rds_db> grant schema_owner to rds_superuser ;
GRANT ROLE
rds_superuser@rds_db> set role schema_owner;
SET
rds_superuser@rds_db> grant select on all tables in schema schema_name to new_user;
GRANT
rds_superuser@rds_db> reset role;
RESET
我在 RDS 实例上有大约 5 个测试 postgres 数据库。到目前为止,所有这些都已创建并且 运行 使用 Master_user
(在实例创建时创建)。
我现在正在尝试创建 5 个新用户并分别为每个数据库授予所有权限。我尝试了 Pgadmin4 Grant 向导,但我得到了任何授予选项的权限被拒绝错误。 Grant ALL
不起作用,Grant Create, Insert
等也不起作用。可能是什么问题??
我刚刚用 --no-owner --no-acl
备份了所有数据库,重命名数据库并创建新所有者的新数据库。恢复每个所有者的每个备份并实现我想要的。
解决方案是使用实例创建的主数据库作为模板,这样主用户就可以完全访问它。我认为他们只是想限制人们在同一个 RDS 上创建多个数据库..
假设我们以 rds_superuser 的身份连接到数据库,那么我们需要执行以下步骤:
- 将关系所有者授予 rds_superuser(能够 "become" 它)
- 成为所有者
- 授予
例如:
rds_superuser@rds_db> grant schema_owner to rds_superuser ;
GRANT ROLE
rds_superuser@rds_db> set role schema_owner;
SET
rds_superuser@rds_db> grant select on all tables in schema schema_name to new_user;
GRANT
rds_superuser@rds_db> reset role;
RESET