Skip to content

Commit 4988d7e

Browse files
committed
Add note about access permission checks by inherited TRUNCATE and LOCK TABLE.
Inherited queries perform access permission checks on the parent table only. But there are two exceptions to this rule in v12 or before; TRUNCATE and LOCK TABLE commands through a parent table check the permissions on not only the parent table but also the children tables. Previously these exceptions were not documented. This commit adds the note about these exceptions, into the document. Back-patch to v9.4. But we don't apply this commit to the master because commit e6f1e56 already got rid of the exception about inherited TRUNCATE and upcoming commit will do for the exception about inherited LOCK TABLE. Author: Amit Langote Reviewed-by: Fujii Masao Discussion: https://postgr.es/m/CA+HiwqHfTnMU6SUkyHxCmpHUKk7ERLHCR3vZVq19ZOQBjPBLmQ@mail.gmail.com
1 parent c5060c1 commit 4988d7e

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

doc/src/sgml/ddl.sgml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3384,7 +3384,15 @@ VALUES ('Albany', NULL, NULL, 'NY');
33843384
accessed through <structname>cities</structname>. This preserves the appearance
33853385
that the data is (also) in the parent table. But
33863386
the <structname>capitals</structname> table could not be updated directly
3387-
without an additional grant. In a similar way, the parent table's row
3387+
without an additional grant. Two exceptions to this rule are
3388+
<command>TRUNCATE</command> and <command>LOCK TABLE</command>,
3389+
where permissions on the child tables are always checked,
3390+
whether they are processed directly or recursively via those commands
3391+
performed on the parent table.
3392+
</para>
3393+
3394+
<para>
3395+
In a similar way, the parent table's row
33883396
security policies (see <xref linkend="ddl-rowsecurity"/>) are applied to
33893397
rows coming from child tables during an inherited query. A child table's
33903398
policies, if any, are applied only when it is the table explicitly named

0 commit comments

Comments
 (0)