On Mon, Jul 10, 2006 at 12:49:54PM -0400, Bruce Momjian wrote:
> 
> Docs updated:
> 
>       <para>
>        For schemas, allows the grantee to find objects contained in the
>        specified schema (assuming that the objects' own privilege requirements
>        are also met).
>       </para>

I think that misses the point. One can easily find objects in a schema
without usage by examining the system catalogs. The point is that there
are ways to access objects without going through the schema usage check,
and also that the check is made only once at the time a name is resolved
to an oid, which may then be cached in a prepared statement, stored
procedure, lastval, or the like. I would suggest something more like
this:

    For schemas, allows the grantee to reference objects within the
    specified schema by name. Note that any method of accessing an
    object that does not involve naming will not check for this
    privilege. For example, any function taking an OID parameter or
    lastval(). Also, the check for this privilege will be made only once
    when a query is planned, so stored plans such as from prepared
    statements or stored procedures will not make the check again when
    subsequently executed.

    In applications where security is very important, it may be wise to
    assure that no users have undesired privileges on objects within a
    schema, and not to rely solely on the schema usage privilege.

---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend

Reply via email to