我正在尝试在 Amazon RDS 数据库 (Postgres 15) 中设置行级安全性来为 Django 项目提供支持。
我传递给 Django 的用户不是超级用户,也没有BYPASSRLS
继承自任何角色。我从这个查询中知道:
SELECT
rolname,
rolsuper,
rolbypassrls
FROM
pg_roles
WHERE
oid in (
WITH RECURSIVE cte AS (
SELECT
oid
FROM
pg_roles
WHERE
rolname = current_user
UNION
ALL
SELECT
m.roleid
FROM
cte
JOIN pg_auth_members m ON m.member = cte.oid
)
SELECT
oid
FROM
cte
)
用户确实拥有数据库、架构和表,但是当我添加策略时,我还运行了:
ALTER TABLE certain_table ENABLE ROW LEVEL SECURITY;
ALTER TABLE certain_table FORCE ROW LEVEL SECURITY;
在本地 Postgres (Docker) 和相同的设置上,执行SELECT row_security_active('certain_table')
return True
。在 RDS 上它返回False
.
我是否缺少任何其他绕过行级安全性的标准?