行级安全性 (RLS) 是否适用于连接语句?
Does row-level security (RLS) apply on a join statement?
给定以下(简化)tables:
users
-----
id (pk)
posts
-----
id (pk)
user_id (fk)
likes
-----
user_id (pk)
post_id (pk)
如果我运行以下查询来获取用户(?)喜欢的帖子:
SELECT *
FROM posts p
INNER JOIN likes l
ON l.post_id = p.id
WHERE l.user_id = ?
SELECT 的 RLS 策略是否会被点赞 table 和帖子 table 都调用,还是仅适用于帖子 table 因为那是我们 SELECT 来自哪里?我假设它适用于两个 table,但只是想仔细检查并确定。如果有任何不同,我正在使用 PostgreSQL。
感谢您的帮助!
如果用户无权查看 table 中的行,这适用于整个查询,而不仅仅是返回的列。
基本上,table(或行)对用户是不可见的。
给定以下(简化)tables:
users
-----
id (pk)
posts
-----
id (pk)
user_id (fk)
likes
-----
user_id (pk)
post_id (pk)
如果我运行以下查询来获取用户(?)喜欢的帖子:
SELECT *
FROM posts p
INNER JOIN likes l
ON l.post_id = p.id
WHERE l.user_id = ?
SELECT 的 RLS 策略是否会被点赞 table 和帖子 table 都调用,还是仅适用于帖子 table 因为那是我们 SELECT 来自哪里?我假设它适用于两个 table,但只是想仔细检查并确定。如果有任何不同,我正在使用 PostgreSQL。
感谢您的帮助!
如果用户无权查看 table 中的行,这适用于整个查询,而不仅仅是返回的列。
基本上,table(或行)对用户是不可见的。