Search Postgresql Archives

Re: when is RLS policy applied

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 7/24/20 2:15 PM, Adrian Klaver wrote:
On 7/24/20 2:12 PM, Ted Toth wrote:
I've looked for information on leakproofness of operators but haven't found anything can you direct me to a source of this information?

See here:

https://www.postgresql.org/docs/12/catalog-pg-proc.html

"proleakproof     bool           The function has no side effects. No information about the arguments is conveyed except via the return value. Any function that might throw an error depending on the values of its arguments is not leak-proof."

So as example:

select proname from pg_proc where proleakproof = 't';

select proname from pg_proc where proleakproof = 'f';

To update this per Tom's answer:

select oprname, proname from pg_proc join pg_operator on pg_proc.oid = pg_operator.oprcode where proleakproof = 't';

select oprname, proname from pg_proc join pg_operator on pg_proc.oid = pg_operator.oprcode where proleakproof = 'f';



On Fri, Jul 24, 2020 at 3:40 PM Ted Toth <txtoth@xxxxxxxxx <mailto:txtoth@xxxxxxxxx>> wrote:


    On Fri, Jul 24, 2020 at 3:15 PM Tom Lane <tgl@xxxxxxxxxxxxx
    <mailto:tgl@xxxxxxxxxxxxx>> wrote:

        Ted Toth <txtoth@xxxxxxxxx <mailto:txtoth@xxxxxxxxx>> writes:
         > I'm trying to understand when RLS select policy is applied so
        I created the
         > follow to test but I don't understand why the query filter
        order is
         > different for the 2 queries can anyone explain?

        The core reason why not is that the ~~ operator isn't considered
        leakproof.  Plain text equality is leakproof, so it's safe to
        evaluate
        ahead of the RLS filter --- and we'd rather do so because the
        plpgsql
        function is assumed to be much more expensive than a built-in
        operator.

        (~~ isn't leakproof because it can throw errors that expose
        information
        about the pattern argument.)

                                 regards, tom lane


    Thanks for the explanation.

    Ted





--
Adrian Klaver
adrian.klaver@xxxxxxxxxxx





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]

  Powered by Linux