Bug: RLS policy FOR SELECT is used to check new rows

Поиск
Список
Период
Сортировка
От Laurenz Albe
Тема Bug: RLS policy FOR SELECT is used to check new rows
Дата
Msg-id aee893f1ec3ca8f62a0da2fc2f9f8b73920f9f9d.camel@cybertec.at
обсуждение исходный текст
Ответы Re: Bug: RLS policy FOR SELECT is used to check new rows  (Dean Rasheed <dean.a.rasheed@gmail.com>)
Список pgsql-hackers
Try this as a user with NOBYPASSRLS:


CREATE TABLE rlsbug (deleted boolean);

INSERT INTO rlsbug VALUES (FALSE);

CREATE POLICY p_sel ON rlsbug FOR SELECT TO laurenz USING (NOT deleted);

CREATE POLICY p_upd ON rlsbug FOR UPDATE TO laurenz USING (TRUE);

ALTER TABLE rlsbug ENABLE ROW LEVEL SECURITY;
ALTER TABLE rlsbug FORCE ROW LEVEL SECURITY;

UPDATE rlsbug SET deleted = TRUE WHERE NOT deleted;
ERROR:  new row violates row-level security policy for table "rlsbug"


I'd say that this error is wrong.  The FOR SELECT policy should be applied
to the WHERE condition, but certainly not to check new rows.

Yours,
Laurenz Albe



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Daniel Gustafsson
Дата:
Сообщение: Re: Replace references to malloc() in libpq documentation with generic language
Следующее
От: Alena Rybakina
Дата:
Сообщение: Re: Simplify create_merge_append_path a bit for clarity