Commit b566f320 authored by Bruce Momjian's avatar Bruce Momjian

doc: warn of SECURITY DEFINER schemas for non-sql_body functions

Non-sql_body functions are evaluated at runtime.

Reported-by: Erki Eessaar

Discussion: https://postgr.es/m/AM9PR01MB8268BF5E74E119828251FD34FE409@AM9PR01MB8268.eurprd01.prod.exchangelabs.com

Backpatch-through: 10
parent 4eab0181
...@@ -779,7 +779,10 @@ SELECT * FROM dup(42); ...@@ -779,7 +779,10 @@ SELECT * FROM dup(42);
<para> <para>
Because a <literal>SECURITY DEFINER</literal> function is executed Because a <literal>SECURITY DEFINER</literal> function is executed
with the privileges of the user that owns it, care is needed to with the privileges of the user that owns it, care is needed to
ensure that the function cannot be misused. For security, ensure that the function cannot be misused. This is particularly
important for non-<replaceable>sql_body</replaceable> functions because
their function bodies are evaluated at run-time, not creation time.
For security,
<xref linkend="guc-search-path"/> should be set to exclude any schemas <xref linkend="guc-search-path"/> should be set to exclude any schemas
writable by untrusted users. This prevents writable by untrusted users. This prevents
malicious users from creating objects (e.g., tables, functions, and malicious users from creating objects (e.g., tables, functions, and
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment