diff options
Diffstat (limited to 'doc/src')
-rw-r--r-- | doc/src/sgml/config.sgml | 17 | ||||
-rw-r--r-- | doc/src/sgml/ref/initdb.sgml | 19 | ||||
-rw-r--r-- | doc/src/sgml/ref/pg_basebackup.sgml | 6 | ||||
-rw-r--r-- | doc/src/sgml/ref/pg_receivewal.sgml | 6 | ||||
-rw-r--r-- | doc/src/sgml/ref/pg_recvlogical.sgml | 11 | ||||
-rw-r--r-- | doc/src/sgml/runtime.sgml | 26 |
6 files changed, 84 insertions, 1 deletions
diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml index a189a8efc3f..5d5f2d23c4f 100644 --- a/doc/src/sgml/config.sgml +++ b/doc/src/sgml/config.sgml @@ -8144,6 +8144,23 @@ dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir' </listitem> </varlistentry> + <varlistentry id="guc-data-directory-mode" xreflabel="data_directory_mode"> + <term><varname>data_directory_mode</varname> (<type>integer</type>) + <indexterm> + <primary><varname>data_directory_mode</varname> configuration parameter</primary> + </indexterm> + </term> + <listitem> + <para> + On Unix systems this parameter reports the permissions of the data + directory defined by (<xref linkend="guc-data-directory"/>) at startup. + (On Microsoft Windows this parameter will always display + <literal>0700</literal>). See + <xref linkend="app-initdb-allow-group-access"/> for more information. + </para> + </listitem> + </varlistentry> + <varlistentry id="guc-debug-assertions" xreflabel="debug_assertions"> <term><varname>debug_assertions</varname> (<type>boolean</type>) <indexterm> diff --git a/doc/src/sgml/ref/initdb.sgml b/doc/src/sgml/ref/initdb.sgml index 826dd91f729..10a8a86a030 100644 --- a/doc/src/sgml/ref/initdb.sgml +++ b/doc/src/sgml/ref/initdb.sgml @@ -77,6 +77,14 @@ PostgreSQL documentation </para> <para> + For security reasons the new cluster created by <command>initdb</command> + will only be accessible by the cluster owner by default. The + <option>--allow-group-access</option> option allows any user in the same + group as the cluster owner to read files in the cluster. This is useful + for performing backups as a non-privileged user. + </para> + + <para> <command>initdb</command> initializes the database cluster's default locale and character set encoding. The character set encoding, collation order (<literal>LC_COLLATE</literal>) and character set classes @@ -188,6 +196,17 @@ PostgreSQL documentation </listitem> </varlistentry> + <varlistentry id="app-initdb-allow-group-access" xreflabel="group access"> + <term><option>-g</option></term> + <term><option>--allow-group-access</option></term> + <listitem> + <para> + Allows users in the same group as the cluster owner to read all cluster + files created by <command>initdb</command>. + </para> + </listitem> + </varlistentry> + <varlistentry id="app-initdb-data-checksums" xreflabel="data checksums"> <term><option>-k</option></term> <term><option>--data-checksums</option></term> diff --git a/doc/src/sgml/ref/pg_basebackup.sgml b/doc/src/sgml/ref/pg_basebackup.sgml index 95045669c93..fc1edf48645 100644 --- a/doc/src/sgml/ref/pg_basebackup.sgml +++ b/doc/src/sgml/ref/pg_basebackup.sgml @@ -737,6 +737,12 @@ PostgreSQL documentation or later. </para> + <para> + <application>pg_basebackup</application> will preserve group permissions in + both the <literal>plain</literal> and <literal>tar</literal> formats if group + permissions are enabled on the source cluster. + </para> + </refsect1> <refsect1> diff --git a/doc/src/sgml/ref/pg_receivewal.sgml b/doc/src/sgml/ref/pg_receivewal.sgml index e3f2ce1fcb7..a18ddd4bff1 100644 --- a/doc/src/sgml/ref/pg_receivewal.sgml +++ b/doc/src/sgml/ref/pg_receivewal.sgml @@ -425,6 +425,12 @@ PostgreSQL documentation not keep up with fetching the WAL data. </para> + <para> + <application>pg_receivewal</application> will preserve group permissions on + the received WAL files if group permissions are enabled on the source + cluster. + </para> + </refsect1> <refsect1> diff --git a/doc/src/sgml/ref/pg_recvlogical.sgml b/doc/src/sgml/ref/pg_recvlogical.sgml index a79ca200849..141c5cddce1 100644 --- a/doc/src/sgml/ref/pg_recvlogical.sgml +++ b/doc/src/sgml/ref/pg_recvlogical.sgml @@ -400,6 +400,17 @@ PostgreSQL documentation </refsect1> <refsect1> + <title>Notes</title> + + <para> + <application>pg_recvlogical</application> will preserve group permissions on + the received WAL files if group permissions are enabled on the source + cluster. + </para> + + </refsect1> + + <refsect1> <title>Examples</title> <para> diff --git a/doc/src/sgml/runtime.sgml b/doc/src/sgml/runtime.sgml index 587b4305274..330e38a29e9 100644 --- a/doc/src/sgml/runtime.sgml +++ b/doc/src/sgml/runtime.sgml @@ -137,7 +137,22 @@ postgres$ <userinput>initdb -D /usr/local/pgsql/data</userinput> database, it is essential that it be secured from unauthorized access. <command>initdb</command> therefore revokes access permissions from everyone but the - <productname>PostgreSQL</productname> user. + <productname>PostgreSQL</productname> user, and optionally, group. + Group access, when enabled, is read-only. This allows an unprivileged + user in the same group as the cluster owner to take a backup of the + cluster data or perform other operations that only require read access. + </para> + + <para> + Note that enabling or disabling group access on an existing cluster requires + the cluster to be shut down and the appropriate mode to be set on all + directories and files before restarting + <productname>PostgreSQL</productname>. Otherwise, a mix of modes might + exist in the data directory. For clusters that allow access only by the + owner, the appropriate modes are <literal>0700</literal> for directories + and <literal>0600</literal> for files. For clusters that also allow + reads by the group, the appropriate modes are <literal>0750</literal> + for directories and <literal>0640</literal> for files. </para> <para> @@ -2195,6 +2210,15 @@ pg_dumpall -p 5432 | psql -d postgres -p 5433 </para> <para> + If the data directory allows group read access then certificate files may + need to be located outside of the data directory in order to conform to the + security requirements outlined above. Generally, group access is enabled + to allow an unprivileged user to backup the database, and in that case the + backup software will not be able to read the certificate files and will + likely error. + </para> + + <para> If the private key is protected with a passphrase, the server will prompt for the passphrase and will not start until it has been entered. |