You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Postgres 13(AWS Aurora)权限异常:撤销后仍可执行UPDATE

问题根源与解决办法

为什么UPDATE还能执行?

rds_superuser是AWS Aurora自带的超级用户角色,默认拥有数据库的全部权限——哪怕你手动撤销了这个角色对表的权限,超级用户的权限优先级会直接绕过表级限制。另外,你的目标用户如果是rds_superuser的成员,会直接继承该角色的所有权限,你单独给用户设置的权限会被完全覆盖。

解决步骤

1. 先把用户移出rds_superuser角色

这是关键前提,不移除的话所有表级权限设置都是白搭:

REVOKE rds_superuser FROM 你的目标用户名;

2. 重新配置表的权限

先彻底清空用户和角色对该表的权限,再明确授予需要的权限:

-- 撤销目标用户的所有表权限
REVOKE ALL ON tryon.rx_cryptographic_signature FROM 你的目标用户名;
-- 清理rds_superuser的表权限记录(规范权限列表)
REVOKE ALL ON tryon.rx_cryptographic_signature FROM rds_superuser;

-- 授予用户仅需要的权限
GRANT SELECT, INSERT, TRIGGER ON tryon.rx_cryptographic_signature TO 你的目标用户名;

3. 验证权限是否生效

执行Postgres命令查看权限状态:

\z tryon.rx_cryptographic_signature

确认输出里目标用户的权限只有r(SELECT)、a(INSERT)、t(TRIGGER),且rds_superuser不再出现在权限列表中。

4. 检查Schema权限(可选但建议)

确保用户对tryon schema只有必要的访问权限,防止通过schema权限间接获得修改权限:

-- 撤销schema的所有权限
REVOKE ALL ON SCHEMA tryon FROM 你的目标用户名;
-- 授予访问schema的权限(允许查看和操作schema内的授权对象)
GRANT USAGE ON SCHEMA tryon TO 你的目标用户名;

最后测试

切换到目标用户账号,尝试执行UPDATE操作,确认会收到权限不足的报错,说明权限限制生效。

内容的提问来源于stack exchange,提问作者rj_murray

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 01:20:39