Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vgOzt-00Broq-2X for pgsql-admin@arkaria.postgresql.org; Thu, 15 Jan 2026 15:10:54 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vgOzs-00Ha8m-0c for pgsql-admin@arkaria.postgresql.org; Thu, 15 Jan 2026 15:10:52 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vgOzr-00Ha8X-1G for pgsql-admin@lists.postgresql.org; Thu, 15 Jan 2026 15:10:51 +0000 Received: from mail-wr1-x42a.google.com ([2a00:1450:4864:20::42a]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vgOzo-000aAG-2s for pgsql-admin@lists.postgresql.org; Thu, 15 Jan 2026 15:10:50 +0000 Received: by mail-wr1-x42a.google.com with SMTP id ffacd0b85a97d-430f3ef2d37so764937f8f.3 for ; Thu, 15 Jan 2026 07:10:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1768489848; x=1769094648; darn=lists.postgresql.org; h=in-reply-to:content-language:references:cc:to:from:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=J4xH5nDp4vn5+/hLy8L1zw3M7TxEqHl12oX/xMeZPoQ=; b=kXwHIxjcjqhuUfwycE7/OkZtxT5mIeU6j4E5MB5os6HgrvAaQU0kLdq/M/2rV9w9LW k4gqXY/z2d4PnW1O65IWRjitl0h3lSzKXRgiMTHU9zBc/4ImsgQczGV6mPfWPv31/UUy rwRlaQ89G1Mh17kppDUCNjqGjpmTA/vf79dQaKStA/T/DnFm3vLRYYVi3RNDXKknmK9o ysM6zHd4bZHXFFvHnUs9ZLXVXWHmaGonePWMfFL8VBJVA2vJSvbp1mkHHsdKsI3gn7SM IvElhJ5AMJ9MtEhtWvRUZQ3yyN324uQgviKQ2xDzyjPPJSrl/OpYXymEjtolgMApAMpw Vqrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768489848; x=1769094648; h=in-reply-to:content-language:references:cc:to:from:subject :user-agent:mime-version:date:message-id:x-gm-gg:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=J4xH5nDp4vn5+/hLy8L1zw3M7TxEqHl12oX/xMeZPoQ=; b=KdmkL2otE3zcM+SMRD/jgdOII8fQBwozSnf0UDJWd5MdFnRSEKaMx0s85m4/wVGtuT 5BpcDmCVX+/59V4lOxXdzTd6w7iEt6NmQs10DVuT9uAjyING+VUh9+j8/JydJxu0vn8E c++7jvfzzfKCodAejZM0hzxYhcK+6Lqv7H0hRhzKsw7YrQb4pWubKvkDAdXxlnszCqqz r5/8TNQc6edC2JezgRMv26MqOBQ7owLsx8JNCVfVm/83SJXs9U9KXj0QNZ68hhVOKxTC tZGlGHp3CwMKUMGJpuh/eTMxfkPmOL9jxRd++BR2v5e9WW5NLjayGw0dAhiqjlh7Yb1V 1ADg== X-Forwarded-Encrypted: i=1; AJvYcCVki7RNKhh86jYN4J0RJwzOBpsLzLjyx9QiEBVcC760tP8jfrkj8nAMRJCNke7wF6K3UojzLmTcIIGX0A==@lists.postgresql.org X-Gm-Message-State: AOJu0Yx8V3WrBYzSPK321zKKfj9zsk96NVhuFdMKjbn9K33+J9IykGHT LM6ug0LCpf7ma/dVXBB3vm9muXQX81LIFUCNCgpou3bz4xPfEvEajlfGZQU/qA== X-Gm-Gg: AY/fxX47J7RHO6eTE9L4kGYKoMvwHifMXgo+rx8FJbDDuNKDySKCe5rMMLb2lKeW3jw UroeUf7wXFbMpkNmO8j9XeEjYOtK+wSx4gLspozeOP3Ef+m+MyWWeZ8DoHd8sUYLS+Rj+EVFbnR 8QAe11IsGvaUURzD7XMpWQujHhDjmf5emVH8ZW3T7xXtfFzzWVub012bUHaAdijm/GEoNuGD+uz uYnT5kGdoLsDe6L2xAkiwJAHZlViGbAzN1pg9EDxRVUlCY9zYg/7zMXvqxPumVBOjvygmBAasXq v8MoetHKjC7eP6qnOmFehdUVrvuxHWxpsstQ60HjXj+ey8RiUKJZpuL8Vcw46JsxvmOO8+AFd1x qEuePaaqXuJuCpm34ehyHiQLj/0vQ/W5kdQ0H6E1dy/+fPz2O3GtcAQ6iUKViIgx+LM26iehSLO A/o0J/Yom5Q8n2utB4KuV4XSBeAY93eP23r71gxlKpsvUbWiYeT7XLJcr7nifzaw== X-Received: by 2002:a05:6000:2c0c:b0:431:35a:4a7d with SMTP id ffacd0b85a97d-4342c570dc2mr8940325f8f.58.1768489847823; Thu, 15 Jan 2026 07:10:47 -0800 (PST) Received: from ?IPV6:2a01:e0a:22d:4d0:1ac0:4dff:fe8b:a3c7? ([2a01:e0a:22d:4d0:1ac0:4dff:fe8b:a3c7]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-434af6e1b7bsm6408272f8f.34.2026.01.15.07.10.47 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 15 Jan 2026 07:10:47 -0800 (PST) Content-Type: multipart/alternative; boundary="------------Ch8xtwY01RH0UjXJ10YVdrti" Message-ID: <69e04307-809c-418b-9f86-903df8d8f317@gmail.com> Date: Thu, 15 Jan 2026 16:10:47 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Is PgAudit extension database specific? From: Pierre Forstmann To: Dharin Shah , zaidagilist , "David G. Johnston" Cc: Siraj G , Pgsql-admin References: <2c004899-b0c2-41fd-8d58-2c9f4e7a4a32@gmail.com> Content-Language: en-US In-Reply-To: <2c004899-b0c2-41fd-8d58-2c9f4e7a4a32@gmail.com> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------Ch8xtwY01RH0UjXJ10YVdrti Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit if parameter log_line_prefix uses %d parameter then you get database name in log; 2026-01-15 16:09:05.784 CET [47861] db1 LOG:  AUDIT: SESSION,1,1,READ,SELECT,,,select * from t1, 2026-01-15 16:09:11.502 CET [47864] db2 LOG:  AUDIT: SESSION,1,1,READ,SELECT,,,select * from t2, Le 15/01/2026 à 16:02, Pierre Forstmann a écrit : > > I have just tested pgaudit 18 with PostgreSQL 18.1. > > I have only installed pgaudit in postgres database and I have created > 2 other databases db1 and db2. > > If I run: > > postgres@alma ~]$ psql db1 > psql (18.1) > Type "help" for help. > > db1=# \dx >                           List of installed extensions >   Name   | Version | Default version |   Schema   |  Description > ---------+---------+-----------------+------------+------------------------------ >  plpgsql | 1.0     | 1.0             | pg_catalog | PL/pgSQL > procedural language > (1 row) > > db1=# select * from t1; >  x > --- > (0 rows) > > db1=# > \q > [postgres@alma ~]$ psql db2 > psql (18.1) > Type "help" for help. > > db2=# \dx >                           List of installed extensions >   Name   | Version | Default version |   Schema   |  Description > ---------+---------+-----------------+------------+------------------------------ >  plpgsql | 1.0     | 1.0             | pg_catalog | PL/pgSQL > procedural language > (1 row) > > db2=# select * from t2; >  x > --- > (0 rows) > > db2=# > \q > [postgres@alma ~]$ > > > I get in PG log: > > > 2026-01-15 15:58:23.044 CET [47325] LOG:  AUDIT: > SESSION,1,1,READ,SELECT,,,"SELECT e.extname AS ""Name"", e.extversion > AS ""Version"", ae.default_version AS ""Default version"",n.nspname AS > ""Schema"", d.description AS ""Description"" >     FROM pg_catalog.pg_extension e LEFT JOIN pg_catalog.pg_namespace n > ON n.oid = e.extnamespace LEFT JOIN pg_catalog.pg_description d ON > d.objoid = e.oid AND d.classoid = > 'pg_catalog.pg_extension'::pg_catalog.regclass LEFT JOIN > pg_catalog.pg_available_extensions() ae(name, default_version, > comment) ON ae.name = e.extname >     ORDER BY 1", > 2026-01-15 15:58:29.192 CET [47325] LOG:  AUDIT: > SESSION,2,1,READ,SELECT,,,select * from t1, > 2026-01-15 15:58:39.620 CET [47332] LOG:  AUDIT: > SESSION,1,1,READ,SELECT,,,"SELECT e.extname AS ""Name"", e.extversion > AS ""Version"", ae.default_version AS ""Default version"",n.nspname AS > ""Schema"", d.description AS ""Description"" >     FROM pg_catalog.pg_extension e LEFT JOIN pg_catalog.pg_namespace n > ON n.oid = e.extnamespace LEFT JOIN pg_catalog.pg_description d ON > d.objoid = e.oid AND d.classoid = > 'pg_catalog.pg_extension'::pg_catalog.regclass LEFT JOIN > pg_catalog.pg_available_extensions() ae(name, default_version, > comment) ON ae.name = e.extname >     ORDER BY 1", > 2026-01-15 15:58:42.416 CET [47332] LOG:  AUDIT: > SESSION,2,1,READ,SELECT,,,select * from t2, > > > We can conclude that  installing pgaudit extension works for all > databases. > > It seems also that pgaudit does not log database name (I have not > anything pgaudit documentation about database name). > > > > Le 06/01/2026 à 18:55, Dharin Shah a écrit : >> Hello, >> >> This is standard for all pg extensions as mentioned above. >> >> Just adding a minor doc patch to add clarification in the doc. >> >> Thanks, >> Dharin >> >> On Tue, Jan 6, 2026 at 6:30 PM zaidagilist wrote: >> >> Hello Siraj, >> >> pgAudit is a coupled component build for a specific PG version, >> for each PG version you are required to install separately. Same >> behavior as other PG based extensions. >> >> Regards, >> Zaid >> >> On Tue, Jan 6, 2026 at 10:19 PM Siraj G wrote: >> >> Hello Experts! >> >> Here is my observation: >> >> Connected to postgres DB and ran: >> CREATE EXTENSION pgaudit; >> >> Within postgres DB, I ran this: >> SELECT*FROMpg_catalog.pg_extension WHEREextname ='pgaudit'; >> >> It does return a row. >> >> I changed the DB and ran the same SQL, but it does not return >> any thing. >> >> The PostgreSQL instance is a GCP cloud SQL running with >> postgres V14.19. >> >> Would you help me understand this, please. >> >> Regards >> Siraj >> --------------Ch8xtwY01RH0UjXJ10YVdrti Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit

if parameter log_line_prefix uses %d parameter then you get database name in log;

2026-01-15 16:09:05.784 CET [47861] db1 LOG:  AUDIT: SESSION,1,1,READ,SELECT,,,select * from t1,<not logged>
2026-01-15 16:09:11.502 CET [47864] db2 LOG:  AUDIT: SESSION,1,1,READ,SELECT,,,select * from t2,<not logged>

Le 15/01/2026 à 16:02, Pierre Forstmann a écrit :

I have just tested pgaudit 18 with PostgreSQL 18.1.

I have only installed pgaudit in postgres database and I have created 2 other databases db1 and db2.

If I run:

postgres@alma ~]$ psql db1
psql (18.1)
Type "help" for help.

db1=# \dx
                          List of installed extensions
  Name   | Version | Default version |   Schema   |         Description          
---------+---------+-----------------+------------+------------------------------
 plpgsql | 1.0     | 1.0             | pg_catalog | PL/pgSQL procedural language
(1 row)

db1=# select * from t1;
 x 
---
(0 rows)

db1=# 
\q
[postgres@alma ~]$ psql db2
psql (18.1)
Type "help" for help.

db2=# \dx
                          List of installed extensions
  Name   | Version | Default version |   Schema   |         Description          
---------+---------+-----------------+------------+------------------------------
 plpgsql | 1.0     | 1.0             | pg_catalog | PL/pgSQL procedural language
(1 row)

db2=# select * from t2;
 x 
---
(0 rows)

db2=# 
\q
[postgres@alma ~]$ 


I get in PG log:


2026-01-15 15:58:23.044 CET [47325] LOG:  AUDIT: SESSION,1,1,READ,SELECT,,,"SELECT e.extname AS ""Name"", e.extversion AS ""Version"", ae.default_version AS ""Default version"",n.nspname AS ""Schema"", d.description AS ""Description""
    FROM pg_catalog.pg_extension e LEFT JOIN pg_catalog.pg_namespace n ON n.oid = e.extnamespace LEFT JOIN pg_catalog.pg_description d ON d.objoid = e.oid AND d.classoid = 'pg_catalog.pg_extension'::pg_catalog.regclass LEFT JOIN pg_catalog.pg_available_extensions() ae(name, default_version, comment) ON ae.name = e.extname
    ORDER BY 1",<not logged>
2026-01-15 15:58:29.192 CET [47325] LOG:  AUDIT: SESSION,2,1,READ,SELECT,,,select * from t1,<not logged>
2026-01-15 15:58:39.620 CET [47332] LOG:  AUDIT: SESSION,1,1,READ,SELECT,,,"SELECT e.extname AS ""Name"", e.extversion AS ""Version"", ae.default_version AS ""Default version"",n.nspname AS ""Schema"", d.description AS ""Description""
    FROM pg_catalog.pg_extension e LEFT JOIN pg_catalog.pg_namespace n ON n.oid = e.extnamespace LEFT JOIN pg_catalog.pg_description d ON d.objoid = e.oid AND d.classoid = 'pg_catalog.pg_extension'::pg_catalog.regclass LEFT JOIN pg_catalog.pg_available_extensions() ae(name, default_version, comment) ON ae.name = e.extname
    ORDER BY 1",<not logged>
2026-01-15 15:58:42.416 CET [47332] LOG:  AUDIT: SESSION,2,1,READ,SELECT,,,select * from t2,<not logged>


We can conclude that  installing pgaudit extension works for all databases.

It seems also that pgaudit does not log database name (I have not anything pgaudit documentation about database name).



Le 06/01/2026 à 18:55, Dharin Shah a écrit :
Hello, 

This is standard for all pg extensions as mentioned above.

Just adding a minor doc patch to add clarification in the doc.

Thanks,
Dharin

On Tue, Jan 6, 2026 at 6:30 PM zaidagilist <zaidagilist@gmail.com> wrote:
Hello Siraj,

pgAudit is a coupled component build for a specific PG version, for each PG version you are required to install separately. Same behavior as other PG based extensions.

Regards,
Zaid

On Tue, Jan 6, 2026 at 10:19 PM Siraj G <tosiraj.g@gmail.com> wrote:
Hello Experts!

Here is my observation:

Connected to postgres DB and ran:
CREATE EXTENSION pgaudit;

Within postgres DB, I ran this:
SELECT * FROM pg_catalog.pg_extension WHERE extname = 'pgaudit';

It does return a row.

I changed the DB and ran the same SQL, but it does not return any thing.

The PostgreSQL instance is a GCP cloud SQL running with postgres V14.19.

Would you help me understand this, please.

Regards
Siraj

--------------Ch8xtwY01RH0UjXJ10YVdrti--