Why does TRUNCATE require a special privilege?

From: Marcelo Fernandes <marcefern7(at)gmail(dot)com>
To: pgsql-general(at)lists(dot)postgresql(dot)org
Subject: Why does TRUNCATE require a special privilege?
Date: 2026-01-16 09:13:09
Message-ID: CAM2F1VNkovvL_56K_6OJiYU8toUdEG1Jk7ABRQ426Geh8LMB+g@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi,

From the documentation:

> TRUNCATE quickly removes all rows from a set of tables. It has the same
> effect as an unqualified DELETE on each table, but since it does not actually
> scan the tables it is faster.
> (...)
> You must have the TRUNCATE privilege on a table to truncate it.

Granted that TRUNCATE and DELETE are different operations under the hood, but
why would the TRUNCATE operation require its own specific privilege rather than
say, use the same privilege as the DELETE operation?

Any explanations or lore about this would be deeply appreciated.

Thank you,
Marcelo.

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Dominique Devienne 2026-01-16 10:32:41 Re: Why does TRUNCATE require a special privilege?
Previous Message David Mullineux 2026-01-16 08:15:58 Re: Enquiry-PR671953 - PostgreSQL (Support Required)