From: | Peter Eisentraut <peter_e(at)gmx(dot)net> |
---|---|
To: | Stephen Frost <sfrost(at)snowman(dot)net> |
Cc: | pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>, Robert Haas <robertmhaas(at)gmail(dot)com>, Charles Clavadetscher <clavadetscher(at)swisspug(dot)org> |
Subject: | Re: unclear about row-level security USING vs. CHECK |
Date: | 2015-09-27 01:46:32 |
Message-ID: | 56074A78.9070403@gmx.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 9/23/15 3:41 PM, Stephen Frost wrote:
> The CREATE POLICY documentation discusses how lack of a WITH CHECK
> policy means the USING expression is used:
>
> """
> Policies can be applied for specific commands or for specific roles. The
> default for newly created policies is that they apply for all commands
> and roles, unless otherwise specified. If multiple policies apply to a
> given query, they will be combined using OR (although ON CONFLICT DO
> UPDATE and INSERT policies are not combined in this way, but rather
> enforced as noted at each stage of ON CONFLICT execution). Further, for
> commands which can have both USING and WITH CHECK policies (ALL and
> UPDATE), if no WITH CHECK policy is defined then the USING policy will
> be used for both what rows are visible (normal USING case) and which
> rows will be allowed to be added (WITH CHECK case).
> """
I see. But it is a bit odd to hide this very fundamental behavior
somewhere in a paragraph that starts out with something about roles.
There is also a mistake, I believe: DELETE policies also take both a
CHECK and a USING clause.
I still find something about this weird, but I'm not sure what. It's
not clear to me at what level this USING->CHECK mapping is applied. I
can write FOR ALL USING and it will be mapped to CHECK for all actions,
including INSERT, but when I write FOR INSERT USING it complains. Why
doesn't it do the mapping that case, too?
>> (Btw., what's the meaning of a policy for DELETE?)
>
> The DELETE policy controls what records a user is able to delete.
That needs to be documented somewhere.
From | Date | Subject | |
---|---|---|---|
Next Message | Pavel Stehule | 2015-09-27 06:05:18 | Re: On-demand running query plans using auto_explain and signals |
Previous Message | Robert Haas | 2015-09-26 20:09:12 | Re: Parallel Seq Scan |