mirror of
https://github.com/postgres/postgres.git
synced 2025-07-30 11:03:19 +03:00
Switch user ID to the object owner when populating a materialized view.
This makes superuser-issued REFRESH MATERIALIZED VIEW safe regardless of the object's provenance. REINDEX is an earlier example of this pattern. As a downside, functions called from materialized views must tolerate running in a security-restricted operation. CREATE MATERIALIZED VIEW need not change user ID. Nonetheless, avoid creation of materialized views that will invariably fail REFRESH by making it, too, start a security-restricted operation. Back-patch to 9.3 so materialized views have this from the beginning. Reviewed by Kevin Grittner.
This commit is contained in:
@ -105,7 +105,9 @@ CREATE MATERIALIZED VIEW <replaceable>table_name</replaceable>
|
||||
<listitem>
|
||||
<para>
|
||||
A <xref linkend="sql-select">, <link linkend="sql-table">TABLE</link>,
|
||||
or <xref linkend="sql-values"> command.
|
||||
or <xref linkend="sql-values"> command. This query will run within a
|
||||
security-restricted operation; in particular, calls to functions that
|
||||
themselves create temporary tables will fail.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
Reference in New Issue
Block a user