mirror of
https://github.com/postgres/postgres.git
synced 2025-04-22 23:02:54 +03:00
Document security implications of check_function_bodies.
Back-patch to 8.4 (all supported versions).
This commit is contained in:
parent
537cbd35c8
commit
540b4e5bc8
@ -5153,9 +5153,11 @@ COPY postgres_log FROM '/full/path/to/logfile.csv' WITH csv;
|
||||
<para>
|
||||
This parameter is normally on. When set to <literal>off</>, it
|
||||
disables validation of the function body string during <xref
|
||||
linkend="sql-createfunction">. Disabling validation is
|
||||
occasionally useful to avoid problems such as forward references
|
||||
when restoring function definitions from a dump.
|
||||
linkend="sql-createfunction">. Disabling validation avoids side
|
||||
effects of the validation process and avoids false positives due
|
||||
to problems such as forward references. Set this parameter
|
||||
to <literal>off</> before loading functions on behalf of other
|
||||
users; <application>pg_dump</> does so automatically.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
@ -194,11 +194,13 @@ CREATE LANGUAGE plsample
|
||||
<para>
|
||||
Validator functions should typically honor the <xref
|
||||
linkend="guc-check-function-bodies"> parameter: if it is turned off then
|
||||
any expensive or context-sensitive checking should be skipped.
|
||||
In particular, this parameter is turned off by <application>pg_dump</>
|
||||
so that it can load procedural language functions without worrying
|
||||
about possible dependencies of the function bodies on other database
|
||||
objects. (Because of this requirement, the call handler should avoid
|
||||
any expensive or context-sensitive checking should be skipped. If the
|
||||
language provides for code execution at compilation time, the validator
|
||||
must suppress checks that would induce such execution. In particular,
|
||||
this parameter is turned off by <application>pg_dump</> so that it can
|
||||
load procedural language functions without worrying about side effects or
|
||||
dependencies of the function bodies on other database objects.
|
||||
(Because of this requirement, the call handler should avoid
|
||||
assuming that the validator has fully checked the function. The point
|
||||
of having a validator is not to let the call handler omit checks, but
|
||||
to notify the user immediately if there are obvious errors in a
|
||||
|
Loading…
x
Reference in New Issue
Block a user