pg_readonly

pg_readonly

pg_readonly : cluster database read only

Overview

ID Extension Package Version Category License Language
5120
pg_readonly
pg_readonly
1.0.4
ADMIN
PostgreSQL
C
Attribute Has Binary Has Library Need Load Has DDL Relocatable Trusted
--sLd--
No
Yes
Yes
Yes
no
no
Relationships
See Also
pg_permissions
pg_upless
safeupdate
set_user
pgaudit
noset
sepgsql
login_hook

Packages

Type Repo Version PG Major Compatibility Package Pattern Dependencies
EXT
MIXED
1.0.4
18
17
16
15
14
pg_readonly -
RPM
PGDG
1.0.4
18
17
16
15
14
pg_readonly_$v -
DEB
PIGSTY
1.0.4
18
17
16
15
14
postgresql-$v-pg-readonly -
Linux / PG PG18 PG17 PG16 PG15 PG14
el8.x86_64
PGDG 1.0.4
PGDG 1.0.4
PGDG 1.0.4
PGDG 1.0.4
PGDG 1.0.4
el8.aarch64
PGDG 1.0.4
PGDG 1.0.4
PGDG 1.0.4
PGDG 1.0.4
PGDG 1.0.4
el9.x86_64
PGDG 1.0.4
PGDG 1.0.4
PGDG 1.0.4
PGDG 1.0.4
PGDG 1.0.4
el9.aarch64
PGDG 1.0.4
PGDG 1.0.4
PGDG 1.0.4
PGDG 1.0.4
PGDG 1.0.4
el10.x86_64
PGDG 1.0.4
PGDG 1.0.4
PGDG 1.0.4
PGDG 1.0.4
PGDG 1.0.4
el10.aarch64
PGDG 1.0.4
PGDG 1.0.4
PGDG 1.0.4
PGDG 1.0.4
PGDG 1.0.4
d12.x86_64
PIGSTY 1.0.4
PIGSTY 1.0.4
PIGSTY 1.0.4
PIGSTY 1.0.4
PIGSTY 1.0.4
d12.aarch64
PIGSTY 1.0.4
PIGSTY 1.0.4
PIGSTY 1.0.4
PIGSTY 1.0.4
PIGSTY 1.0.4
d13.x86_64
PIGSTY 1.0.4
PIGSTY 1.0.4
PIGSTY 1.0.4
PIGSTY 1.0.4
PIGSTY 1.0.4
d13.aarch64
PIGSTY 1.0.4
PIGSTY 1.0.4
PIGSTY 1.0.4
PIGSTY 1.0.4
PIGSTY 1.0.4
u22.x86_64
PIGSTY 1.0.4
PIGSTY 1.0.4
PIGSTY 1.0.4
PIGSTY 1.0.4
PIGSTY 1.0.4
u22.aarch64
PIGSTY 1.0.4
PIGSTY 1.0.4
PIGSTY 1.0.4
PIGSTY 1.0.4
PIGSTY 1.0.4
u24.x86_64
PIGSTY 1.0.4
PIGSTY 1.0.4
PIGSTY 1.0.4
PIGSTY 1.0.4
PIGSTY 1.0.4
u24.aarch64
PIGSTY 1.0.4
PIGSTY 1.0.4
PIGSTY 1.0.4
PIGSTY 1.0.4
PIGSTY 1.0.4
Package Version OS ORG SIZE File URL
pg_readonly_18 1.0.4 el8.x86_64 pgdg 16.4 KiB pg_readonly_18-1.0.4-1PGDG.rhel8.10.x86_64.rpm
pg_readonly_18 1.0.3 el8.x86_64 pgdg 16.6 KiB pg_readonly_18-1.0.3-5PGDG.rhel8.x86_64.rpm
pg_readonly_18 1.0.4 el8.aarch64 pgdg 16.3 KiB pg_readonly_18-1.0.4-1PGDG.rhel8.10.aarch64.rpm
pg_readonly_18 1.0.3 el8.aarch64 pgdg 16.5 KiB pg_readonly_18-1.0.3-5PGDG.rhel8.aarch64.rpm
pg_readonly_18 1.0.4 el9.x86_64 pgdg 16.0 KiB pg_readonly_18-1.0.4-1PGDG.rhel9.7.x86_64.rpm
pg_readonly_18 1.0.3 el9.x86_64 pgdg 16.5 KiB pg_readonly_18-1.0.3-5PGDG.rhel9.x86_64.rpm
pg_readonly_18 1.0.4 el9.aarch64 pgdg 15.8 KiB pg_readonly_18-1.0.4-1PGDG.rhel9.7.aarch64.rpm
pg_readonly_18 1.0.3 el9.aarch64 pgdg 16.0 KiB pg_readonly_18-1.0.3-5PGDG.rhel9.aarch64.rpm
pg_readonly_18 1.0.4 el10.x86_64 pgdg 16.1 KiB pg_readonly_18-1.0.4-1PGDG.rhel10.1.x86_64.rpm
pg_readonly_18 1.0.3 el10.x86_64 pgdg 16.8 KiB pg_readonly_18-1.0.3-5PGDG.rhel10.x86_64.rpm
pg_readonly_18 1.0.4 el10.aarch64 pgdg 16.1 KiB pg_readonly_18-1.0.4-1PGDG.rhel10.1.aarch64.rpm
pg_readonly_18 1.0.3 el10.aarch64 pgdg 16.7 KiB pg_readonly_18-1.0.3-5PGDG.rhel10.aarch64.rpm
postgresql-18-pg-readonly 1.0.4 d12.x86_64 pigsty 16.6 KiB postgresql-18-pg-readonly_1.0.4-1PIGSTY~bookworm_amd64.deb
postgresql-18-pg-readonly 1.0.4 d12.aarch64 pigsty 16.5 KiB postgresql-18-pg-readonly_1.0.4-1PIGSTY~bookworm_arm64.deb
postgresql-18-pg-readonly 1.0.4 d13.x86_64 pigsty 16.6 KiB postgresql-18-pg-readonly_1.0.4-1PIGSTY~trixie_amd64.deb
postgresql-18-pg-readonly 1.0.4 d13.aarch64 pigsty 16.6 KiB postgresql-18-pg-readonly_1.0.4-1PIGSTY~trixie_arm64.deb
postgresql-18-pg-readonly 1.0.4 u22.x86_64 pigsty 16.9 KiB postgresql-18-pg-readonly_1.0.4-1PIGSTY~jammy_amd64.deb
postgresql-18-pg-readonly 1.0.4 u22.aarch64 pigsty 16.9 KiB postgresql-18-pg-readonly_1.0.4-1PIGSTY~jammy_arm64.deb
postgresql-18-pg-readonly 1.0.4 u24.x86_64 pigsty 17.1 KiB postgresql-18-pg-readonly_1.0.4-1PIGSTY~noble_amd64.deb
postgresql-18-pg-readonly 1.0.4 u24.aarch64 pigsty 17.0 KiB postgresql-18-pg-readonly_1.0.4-1PIGSTY~noble_arm64.deb
Package Version OS ORG SIZE File URL
pg_readonly_17 1.0.4 el8.x86_64 pgdg 16.4 KiB pg_readonly_17-1.0.4-1PGDG.rhel8.10.x86_64.rpm
pg_readonly_17 1.0.3 el8.x86_64 pgdg 16.6 KiB pg_readonly_17-1.0.3-4PGDG.rhel8.x86_64.rpm
pg_readonly_17 1.0.4 el8.aarch64 pgdg 16.4 KiB pg_readonly_17-1.0.4-1PGDG.rhel8.10.aarch64.rpm
pg_readonly_17 1.0.3 el8.aarch64 pgdg 16.4 KiB pg_readonly_17-1.0.3-4PGDG.rhel8.aarch64.rpm
pg_readonly_17 1.0.4 el9.x86_64 pgdg 16.1 KiB pg_readonly_17-1.0.4-1PGDG.rhel9.7.x86_64.rpm
pg_readonly_17 1.0.3 el9.x86_64 pgdg 16.7 KiB pg_readonly_17-1.0.3-4PGDG.rhel9.x86_64.rpm
pg_readonly_17 1.0.4 el9.aarch64 pgdg 15.9 KiB pg_readonly_17-1.0.4-1PGDG.rhel9.7.aarch64.rpm
pg_readonly_17 1.0.3 el9.aarch64 pgdg 16.4 KiB pg_readonly_17-1.0.3-4PGDG.rhel9.aarch64.rpm
pg_readonly_17 1.0.4 el10.x86_64 pgdg 16.2 KiB pg_readonly_17-1.0.4-1PGDG.rhel10.1.x86_64.rpm
pg_readonly_17 1.0.3 el10.x86_64 pgdg 17.0 KiB pg_readonly_17-1.0.3-5PGDG.rhel10.x86_64.rpm
pg_readonly_17 1.0.4 el10.aarch64 pgdg 16.2 KiB pg_readonly_17-1.0.4-1PGDG.rhel10.1.aarch64.rpm
pg_readonly_17 1.0.3 el10.aarch64 pgdg 16.9 KiB pg_readonly_17-1.0.3-5PGDG.rhel10.aarch64.rpm
postgresql-17-pg-readonly 1.0.4 d12.x86_64 pigsty 16.6 KiB postgresql-17-pg-readonly_1.0.4-1PIGSTY~bookworm_amd64.deb
postgresql-17-pg-readonly 1.0.4 d12.aarch64 pigsty 16.5 KiB postgresql-17-pg-readonly_1.0.4-1PIGSTY~bookworm_arm64.deb
postgresql-17-pg-readonly 1.0.4 d13.x86_64 pigsty 16.6 KiB postgresql-17-pg-readonly_1.0.4-1PIGSTY~trixie_amd64.deb
postgresql-17-pg-readonly 1.0.4 d13.aarch64 pigsty 16.6 KiB postgresql-17-pg-readonly_1.0.4-1PIGSTY~trixie_arm64.deb
postgresql-17-pg-readonly 1.0.4 u22.x86_64 pigsty 19.9 KiB postgresql-17-pg-readonly_1.0.4-1PIGSTY~jammy_amd64.deb
postgresql-17-pg-readonly 1.0.4 u22.aarch64 pigsty 19.9 KiB postgresql-17-pg-readonly_1.0.4-1PIGSTY~jammy_arm64.deb
postgresql-17-pg-readonly 1.0.4 u24.x86_64 pigsty 17.2 KiB postgresql-17-pg-readonly_1.0.4-1PIGSTY~noble_amd64.deb
postgresql-17-pg-readonly 1.0.4 u24.aarch64 pigsty 17.1 KiB postgresql-17-pg-readonly_1.0.4-1PIGSTY~noble_arm64.deb
Package Version OS ORG SIZE File URL
pg_readonly_16 1.0.4 el8.x86_64 pgdg 16.4 KiB pg_readonly_16-1.0.4-1PGDG.rhel8.10.x86_64.rpm
pg_readonly_16 1.0.3 el8.x86_64 pgdg 16.4 KiB pg_readonly_16-1.0.3-2.rhel8.1.x86_64.rpm
pg_readonly_16 1.0.4 el8.aarch64 pgdg 16.4 KiB pg_readonly_16-1.0.4-1PGDG.rhel8.10.aarch64.rpm
pg_readonly_16 1.0.3 el8.aarch64 pgdg 16.2 KiB pg_readonly_16-1.0.3-2.rhel8.1.aarch64.rpm
pg_readonly_16 1.0.4 el9.x86_64 pgdg 16.1 KiB pg_readonly_16-1.0.4-1PGDG.rhel9.7.x86_64.rpm
pg_readonly_16 1.0.3 el9.x86_64 pgdg 16.5 KiB pg_readonly_16-1.0.3-2.rhel9.1.x86_64.rpm
pg_readonly_16 1.0.4 el9.aarch64 pgdg 15.9 KiB pg_readonly_16-1.0.4-1PGDG.rhel9.7.aarch64.rpm
pg_readonly_16 1.0.3 el9.aarch64 pgdg 16.1 KiB pg_readonly_16-1.0.3-2.rhel9.1.aarch64.rpm
pg_readonly_16 1.0.4 el10.x86_64 pgdg 16.2 KiB pg_readonly_16-1.0.4-1PGDG.rhel10.1.x86_64.rpm
pg_readonly_16 1.0.3 el10.x86_64 pgdg 17.0 KiB pg_readonly_16-1.0.3-5PGDG.rhel10.x86_64.rpm
pg_readonly_16 1.0.4 el10.aarch64 pgdg 16.2 KiB pg_readonly_16-1.0.4-1PGDG.rhel10.1.aarch64.rpm
pg_readonly_16 1.0.3 el10.aarch64 pgdg 16.9 KiB pg_readonly_16-1.0.3-5PGDG.rhel10.aarch64.rpm
postgresql-16-pg-readonly 1.0.4 d12.x86_64 pigsty 16.6 KiB postgresql-16-pg-readonly_1.0.4-1PIGSTY~bookworm_amd64.deb
postgresql-16-pg-readonly 1.0.4 d12.aarch64 pigsty 16.5 KiB postgresql-16-pg-readonly_1.0.4-1PIGSTY~bookworm_arm64.deb
postgresql-16-pg-readonly 1.0.4 d13.x86_64 pigsty 16.6 KiB postgresql-16-pg-readonly_1.0.4-1PIGSTY~trixie_amd64.deb
postgresql-16-pg-readonly 1.0.4 d13.aarch64 pigsty 16.6 KiB postgresql-16-pg-readonly_1.0.4-1PIGSTY~trixie_arm64.deb
postgresql-16-pg-readonly 1.0.4 u22.x86_64 pigsty 19.8 KiB postgresql-16-pg-readonly_1.0.4-1PIGSTY~jammy_amd64.deb
postgresql-16-pg-readonly 1.0.4 u22.aarch64 pigsty 19.8 KiB postgresql-16-pg-readonly_1.0.4-1PIGSTY~jammy_arm64.deb
postgresql-16-pg-readonly 1.0.4 u24.x86_64 pigsty 17.2 KiB postgresql-16-pg-readonly_1.0.4-1PIGSTY~noble_amd64.deb
postgresql-16-pg-readonly 1.0.4 u24.aarch64 pigsty 17.1 KiB postgresql-16-pg-readonly_1.0.4-1PIGSTY~noble_arm64.deb
Package Version OS ORG SIZE File URL
pg_readonly_15 1.0.4 el8.x86_64 pgdg 16.4 KiB pg_readonly_15-1.0.4-1PGDG.rhel8.10.x86_64.rpm
pg_readonly_15 1.0.3 el8.x86_64 pgdg 30.7 KiB pg_readonly_15-1.0.3-1.rhel8.x86_64.rpm
pg_readonly_15 1.0.1 el8.x86_64 pgdg 29.2 KiB pg_readonly_15-1.0.1-1.rhel8.x86_64.rpm
pg_readonly_15 1.0.4 el8.aarch64 pgdg 16.4 KiB pg_readonly_15-1.0.4-1PGDG.rhel8.10.aarch64.rpm
pg_readonly_15 1.0.3 el8.aarch64 pgdg 30.4 KiB pg_readonly_15-1.0.3-1.rhel8.aarch64.rpm
pg_readonly_15 1.0.4 el9.x86_64 pgdg 16.1 KiB pg_readonly_15-1.0.4-1PGDG.rhel9.7.x86_64.rpm
pg_readonly_15 1.0.3 el9.x86_64 pgdg 31.3 KiB pg_readonly_15-1.0.3-1.rhel9.x86_64.rpm
pg_readonly_15 1.0.1 el9.x86_64 pgdg 29.9 KiB pg_readonly_15-1.0.1-1.rhel9.x86_64.rpm
pg_readonly_15 1.0.4 el9.aarch64 pgdg 15.9 KiB pg_readonly_15-1.0.4-1PGDG.rhel9.7.aarch64.rpm
pg_readonly_15 1.0.3 el9.aarch64 pgdg 31.0 KiB pg_readonly_15-1.0.3-1.rhel9.aarch64.rpm
pg_readonly_15 1.0.4 el10.x86_64 pgdg 16.2 KiB pg_readonly_15-1.0.4-1PGDG.rhel10.1.x86_64.rpm
pg_readonly_15 1.0.3 el10.x86_64 pgdg 17.0 KiB pg_readonly_15-1.0.3-5PGDG.rhel10.x86_64.rpm
pg_readonly_15 1.0.4 el10.aarch64 pgdg 16.2 KiB pg_readonly_15-1.0.4-1PGDG.rhel10.1.aarch64.rpm
pg_readonly_15 1.0.3 el10.aarch64 pgdg 16.9 KiB pg_readonly_15-1.0.3-5PGDG.rhel10.aarch64.rpm
postgresql-15-pg-readonly 1.0.4 d12.x86_64 pigsty 16.6 KiB postgresql-15-pg-readonly_1.0.4-1PIGSTY~bookworm_amd64.deb
postgresql-15-pg-readonly 1.0.4 d12.aarch64 pigsty 16.5 KiB postgresql-15-pg-readonly_1.0.4-1PIGSTY~bookworm_arm64.deb
postgresql-15-pg-readonly 1.0.4 d13.x86_64 pigsty 16.6 KiB postgresql-15-pg-readonly_1.0.4-1PIGSTY~trixie_amd64.deb
postgresql-15-pg-readonly 1.0.4 d13.aarch64 pigsty 16.5 KiB postgresql-15-pg-readonly_1.0.4-1PIGSTY~trixie_arm64.deb
postgresql-15-pg-readonly 1.0.4 u22.x86_64 pigsty 19.8 KiB postgresql-15-pg-readonly_1.0.4-1PIGSTY~jammy_amd64.deb
postgresql-15-pg-readonly 1.0.4 u22.aarch64 pigsty 19.8 KiB postgresql-15-pg-readonly_1.0.4-1PIGSTY~jammy_arm64.deb
postgresql-15-pg-readonly 1.0.4 u24.x86_64 pigsty 17.2 KiB postgresql-15-pg-readonly_1.0.4-1PIGSTY~noble_amd64.deb
postgresql-15-pg-readonly 1.0.4 u24.aarch64 pigsty 17.1 KiB postgresql-15-pg-readonly_1.0.4-1PIGSTY~noble_arm64.deb
Package Version OS ORG SIZE File URL
pg_readonly_14 1.0.4 el8.x86_64 pgdg 16.3 KiB pg_readonly_14-1.0.4-1PGDG.rhel8.10.x86_64.rpm
pg_readonly_14 1.0.3 el8.x86_64 pgdg 30.5 KiB pg_readonly_14-1.0.3-1.rhel8.x86_64.rpm
pg_readonly_14 1.0.1 el8.x86_64 pgdg 29.7 KiB pg_readonly_14-1.0.1-1.rhel8.x86_64.rpm
pg_readonly_14 1.0.4 el8.aarch64 pgdg 16.3 KiB pg_readonly_14-1.0.4-1PGDG.rhel8.10.aarch64.rpm
pg_readonly_14 1.0.3 el8.aarch64 pgdg 30.1 KiB pg_readonly_14-1.0.3-1.rhel8.aarch64.rpm
pg_readonly_14 1.0.4 el9.x86_64 pgdg 16.1 KiB pg_readonly_14-1.0.4-1PGDG.rhel9.7.x86_64.rpm
pg_readonly_14 1.0.3 el9.x86_64 pgdg 31.1 KiB pg_readonly_14-1.0.3-1.rhel9.x86_64.rpm
pg_readonly_14 1.0.1 el9.x86_64 pgdg 29.9 KiB pg_readonly_14-1.0.1-1.rhel9.x86_64.rpm
pg_readonly_14 1.0.4 el9.aarch64 pgdg 15.8 KiB pg_readonly_14-1.0.4-1PGDG.rhel9.7.aarch64.rpm
pg_readonly_14 1.0.3 el9.aarch64 pgdg 30.7 KiB pg_readonly_14-1.0.3-1.rhel9.aarch64.rpm
pg_readonly_14 1.0.4 el10.x86_64 pgdg 16.1 KiB pg_readonly_14-1.0.4-1PGDG.rhel10.1.x86_64.rpm
pg_readonly_14 1.0.3 el10.x86_64 pgdg 16.9 KiB pg_readonly_14-1.0.3-5PGDG.rhel10.x86_64.rpm
pg_readonly_14 1.0.4 el10.aarch64 pgdg 16.1 KiB pg_readonly_14-1.0.4-1PGDG.rhel10.1.aarch64.rpm
pg_readonly_14 1.0.3 el10.aarch64 pgdg 16.8 KiB pg_readonly_14-1.0.3-5PGDG.rhel10.aarch64.rpm
postgresql-14-pg-readonly 1.0.4 d12.x86_64 pigsty 16.4 KiB postgresql-14-pg-readonly_1.0.4-1PIGSTY~bookworm_amd64.deb
postgresql-14-pg-readonly 1.0.4 d12.aarch64 pigsty 16.2 KiB postgresql-14-pg-readonly_1.0.4-1PIGSTY~bookworm_arm64.deb
postgresql-14-pg-readonly 1.0.4 d13.x86_64 pigsty 16.4 KiB postgresql-14-pg-readonly_1.0.4-1PIGSTY~trixie_amd64.deb
postgresql-14-pg-readonly 1.0.4 d13.aarch64 pigsty 16.3 KiB postgresql-14-pg-readonly_1.0.4-1PIGSTY~trixie_arm64.deb
postgresql-14-pg-readonly 1.0.4 u22.x86_64 pigsty 19.5 KiB postgresql-14-pg-readonly_1.0.4-1PIGSTY~jammy_amd64.deb
postgresql-14-pg-readonly 1.0.4 u22.aarch64 pigsty 19.5 KiB postgresql-14-pg-readonly_1.0.4-1PIGSTY~jammy_arm64.deb
postgresql-14-pg-readonly 1.0.4 u24.x86_64 pigsty 17.0 KiB postgresql-14-pg-readonly_1.0.4-1PIGSTY~noble_amd64.deb
postgresql-14-pg-readonly 1.0.4 u24.aarch64 pigsty 16.9 KiB postgresql-14-pg-readonly_1.0.4-1PIGSTY~noble_arm64.deb

Source

pig build pkg pg_readonly;# build deb

Install

Make sure PGDG and PIGSTY repo available:

pig repo add pgsql -u # add both repo and update cache

Install this extension with pig:

pig install pg_readonly;# install via package name, for the active PG version  pig install pg_readonly -v 18; # install for PG 18 pig install pg_readonly -v 17; # install for PG 17 pig install pg_readonly -v 16; # install for PG 16 pig install pg_readonly -v 15; # install for PG 15 pig install pg_readonly -v 14; # install for PG 14

Config this extension to shared_preload_libraries:

shared_preload_libraries = 'pg_readonly';

Create this extension with:

CREATE EXTENSION pg_readonly;

Usage

pg_readonly: cluster database read only

pg_readonly sets all databases in a PostgreSQL cluster to read-only mode at the SQL level. It must be loaded via shared_preload_libraries. The read-only status is managed in shared memory with a global flag (not persisted across restarts).

Check Read-Only Status

SELECT get_cluster_readonly(); -- Returns false (read-write) or true (read-only)

Set Cluster Read-Only

SELECT set_cluster_readonly();

In read-only mode, SELECT statements are allowed (unless they call writing functions), but DML (INSERT, UPDATE, DELETE), DDL (including TRUNCATE), and DCL (GRANT, REVOKE) are blocked:

SELECT * FROM t; -- OK UPDATE t SET x = 33; -- ERROR: pg_readonly: invalid statement because cluster is read-only CREATE TABLE tmp(c text); -- ERROR: pg_readonly: invalid statement because cluster is read-only

Note: set_cluster_readonly() terminates all open transactions.

Set Cluster Read-Write

SELECT unset_cluster_readonly();

Note: background processes (checkpointer, bgwriter, walwriter, autovacuum) continue running in read-only mode – the restriction is at the SQL statement level only.

Last updated on