diff options
author | Andrew Dunstan | 2022-11-28 16:57:28 +0000 |
---|---|---|
committer | Andrew Dunstan | 2022-11-28 17:08:14 +0000 |
commit | 4441fc704d7048b2f1f039cc74b72bd23e7e36d0 (patch) | |
tree | e355df27b24a29ad62f19f941e3b2b681a2afe62 /doc/src/sgml/ref/vacuum.sgml | |
parent | b5d6382496f2b8fc31abd92c2654a9a67aca76c6 (diff) |
Provide non-superuser predefined roles for vacuum and analyze
This provides two new predefined roles: pg_vacuum_all_tables and
pg_analyze_all_tables. Roles which have been granted these roles can
perform vacuum or analyse respectively on any or all tables as if they
were a superuser. This removes the need to grant superuser privilege to
roles just so they can perform vacuum and/or analyze.
Nathan Bossart
Reviewed by: Bharath Rupireddy, Kyotaro Horiguchi, Stephen Frost, Robert
Haas, Mark Dilger, Tom Lane, Corey Huinker, David G. Johnston, Michael
Paquier.
Discussion: https://postgr.es/m/20220722203735.GB3996698@nathanxps13
Diffstat (limited to 'doc/src/sgml/ref/vacuum.sgml')
-rw-r--r-- | doc/src/sgml/ref/vacuum.sgml | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/doc/src/sgml/ref/vacuum.sgml b/doc/src/sgml/ref/vacuum.sgml index 70c0d813460..9cd880ea34a 100644 --- a/doc/src/sgml/ref/vacuum.sgml +++ b/doc/src/sgml/ref/vacuum.sgml @@ -356,12 +356,16 @@ VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] [ ANALYZE ] [ <replaceable class="paramet <title>Notes</title> <para> - To vacuum a table, one must ordinarily be the table's owner or a - superuser or have the <literal>VACUUM</literal> privilege on the table. + To vacuum a table, one must ordinarily have the <literal>VACUUM</literal> + privilege on the table or be the table's owner, a superuser, or a role with + privileges of the + <link linkend="predefined-roles-table"><literal>pg_vacuum_all_tables</literal></link> + role. However, database owners are allowed to vacuum all tables in their databases, except shared catalogs. (The restriction for shared catalogs means that a true database-wide - <command>VACUUM</command> can only be performed by a superuser.) + <command>VACUUM</command> can only be performed by superusers and roles + with privileges of <literal>pg_vacuum_all_tables</literal>.) <command>VACUUM</command> will skip over any tables that the calling user does not have permission to vacuum. </para> |