postgres.git / summary / log / commit / refs

commit    cbf2779e70bd18eaab0ccd2eea70bcf8edd37444
Author:   Robert Haas <rhaas@postgresql.org>
Date:     Mon Jul 20 17:36:39 2026 +0000
First released in: 14.24, 15.19, 16.15, 17.11, 18.6

    doc: Granting TRIGGER or REFERENCES on table is dangerous.
    
    It's always been the case that granting these privileges to users that
    you don't fully trust was a bad idea, but it hasn't always been
    obvious to people reading the documentation that this is the case.
    To prevent confusion, and also repeated reports to pgsql-security,
    mention it explicitly.
    
    Discussion: http://postgr.es/m/CA+TgmobrjCHBuWHrvX3=2vndUCO2thUOdevrCcMDFW86cqCYvw@mail.gmail.com
    Reviewed-by: Nathan Bossart <nathandbossart@gmail.com>
    Backpatch-through: 14


doc/src/sgml/ddl.sgml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/doc/src/sgml/ddl.sgml b/doc/src/sgml/ddl.sgml index 98fcc7c44a1..06f2c320a7b 100644 --- a/doc/src/sgml/ddl.sgml +++ b/doc/src/sgml/ddl.sgml @@ -1879,7 +1879,11 @@ REVOKE ALL ON accounts FROM PUBLIC; <listitem> <para> Allows creation of a foreign key constraint referencing a - table, or specific column(s) of a table. + table, or specific column(s) of a table. Great care should be taken when + granting this privilege, since a user who creates a foreign key can arrange + for enforcement of that foreign key to call an arbitrary function, such as + a cast function, and such functions will be called with the privileges of + the table owner. </para> </listitem> </varlistentry> @@ -1888,7 +1892,9 @@ REVOKE ALL ON accounts FROM PUBLIC; <term><literal>TRIGGER</literal></term> <listitem> <para> - Allows creation of a trigger on a table, view, etc. + Allows creation of a trigger on a table, view, etc. Great care should be + taken when granting this privilege, since any triggers added to a table + or view will be executed with the privileges of users who modify it. </para> </listitem> </varlistentry> [parent: d610d8e8be56]