Re: Fw: Isn't pg_statistic a security hole - Solution Proposal - Mailing list pgsql-patches

From Joe Conway
Subject Re: Fw: Isn't pg_statistic a security hole - Solution Proposal
Date
Msg-id 00bd01c0ebb1$6ca8e280$0705a8c0@jecw2k1
Whole thread Raw
In response to Re: Fw: Isn't pg_statistic a security hole - Solution Proposal  (Peter Eisentraut <peter_e@gmx.net>)
Responses Re: Fw: Isn't pg_statistic a security hole - Solution Proposal  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-patches
> Thanks for the feedback! To summarize the recommended changes:
>
> - put function into backend/utils/adt/acl.c.
> - remove PG_FUNCTION_INFO_V1
> - mark 'proisstrict' in pg_proc
> - rename to has_table_privilege()
> - overload the function name for 6 versions (OIDs 1920 - 1925):
>     -> has_table_privilege(text username, text relname, text priv)
>     -> has_table_privilege(oid usesysid, text relname, text priv)
>     -> has_table_privilege(oid usesysid, oid reloid, text priv)
>     -> has_table_privilege(text username, oid reloid, text priv)
>     -> has_table_privilege(text relname, text priv)    /* assumes
> current_user */
>     -> has_table_privilege(oid reloid, text priv)    /* assumes
current_user
> */
>

Here's a new patch for has_table_privilege( . . .). One change worthy of
note is that I added a definition to fmgr.h as follows:

   #define PG_NARGS             (fcinfo->nargs)

This allowed me to use two of the new functions to handle both 2 and 3
argument cases. Also different from the above, I used int instead of oid for
the usesysid type.

I'm also attaching a test script and expected output. I haven't yet looked
at how to properly include these into the normal regression testing -- any
pointers are much appreciated.

Thanks,

-- Joe


Attachment

pgsql-patches by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: Re: AW: [HACKERS] Re: Support for %TYPE in CREATE FUNCTION
Next
From: Tom Lane
Date:
Subject: Re: Fw: Isn't pg_statistic a security hole - Solution Proposal