Just to add my $0.02 here.

Stop letting users share postgres credentials and for the love of all that
is right and just, why are you lettting users share administrative (or
superuser) credentails.


   1. don't share credentials, ever.
   2. don't let users who aren't administrators have admin or superuser
   privlidges
   3. use PostgreSQL native logging to keep track of who's doing what
   4. use pg_audit if you want more granular or detailed audits that native
   logging can't handle.

It's unreasonable to expect something like pgAdmin to hadle security in
your database.  Doubly so by manipulating values that clients themselves
have the ability to alter.

pgAdmin is a decent program for what it does.  I don't always agree with
all of the choices that the developers have made, but I don't think that
what you are asking for something they should seriously entertain.

I hope that helps,
rik.


On Wed, Aug 5, 2026 at 10:50 AM abhishek s <[email protected]> wrote:

> Hi Dave,
>
> What is the option then to know which user does any change in production
> wth pgadmin using admin credentials?
>
> On Wed, 5 Aug, 2026, 2:52 pm Dave Page, <[email protected]> wrote:
>
>> Hi
>>
>> On Wed, 5 Aug 2026 at 10:13, abhishek s <[email protected]> wrote:
>>
>>> Hi team,
>>>
>>> Background
>>> The current PostgreSQL audit logs in Azure record are below
>>>
>>> Database user
>>>
>>> Database name
>>>
>>> Client IP (appears as the Zscaler egress IP)
>>>
>>> Application name (currently pgAdmin4)
>>>
>>> Problem
>>> Because the organization uses VPN or a similar proxy, PostgreSQL only
>>> sees the proxy's IP address instead of the actual user's workstation IP.
>>>
>>> As a result:
>>>
>>> The Client IP is not useful for identifying who accessed the database.
>>>
>>> The application_name is always "pgAdmin4", which is static.
>>>
>>> Security and audit teams cannot determine:
>>>
>>> Which workstation connected
>>>
>>> Which employee initiated the connection
>>>
>>> Which machine executed the SQL statements
>>>
>>> Proposed Enhancement:
>>> The request suggests that pgAdmin should automatically populate
>>> PostgreSQL's application_name connection parameter with client metadata
>>> when establishing the database connection.
>>>
>>
>> You absolutely should NOT use application_name for security or audit
>> purposes. It's a client-side parameter that a user can override in any way
>> they like. Its purpose is to provide convenience when monitoring the server
>> by identifying what a connection is being used for. That's fine for day to
>> day monitoring with well behaved users, but you cannot rely on it for
>> audit/security purposes as an attacker can simply override it.
>>
>> --
>> Dave Page
>> pgAdmin: https://www.pgadmin.org
>> PostgreSQL: https://www.postgresql.org
>> pgEdge: https://www.pgedge.com
>>
>>

Reply via email to