Re: Psql meta-command conninfo+
От | Hunaid Sohail |
---|---|
Тема | Re: Psql meta-command conninfo+ |
Дата | |
Msg-id | CAMWA6ybtLkLqmFZxYZ2Cjj73WxBWu5n3Wa3g=3VhBVKs3_9wTw@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Psql meta-command conninfo+ (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-hackers |
Hi,
On Mon, Sep 16, 2024 at 8:31 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
Alvaro Herrera <alvherre@alvh.no-ip.org> writes:
> On 2024-Sep-16, Jim Jones wrote:
>> * The value of "Current User" does not match the function current_user()
>> --- as one might expcect. It is a little confusing, as there is no
>> mention of "Current User" in the docs. In case this is the intended
>> behaviour, could you please add it to the docs?
> It is intended. As Peter said[1], what we wanted was to display
> client-side info, so PQuser() is the right thing to do. Now maybe
> "Current User" is not the perfect column header, but at least the
> definition seems consistent with the desired end result.
Seems like "Session User" would be closer to being accurate, since
PQuser()'s result does not change when you do SET ROLE etc.
> Now, I think
> the current docs saying to look at session_user() are wrong, they should
> point to the libpq docs for the function instead; something like "The
> name of the current user, as returned by PQuser()" and so on.
Sure, but this does not excuse choosing a misleading column name
when there are better choices readily available.
Maybe we can rename "Current User" to "Authenticated User" just like the previous author because it is a user returned by PQuser().
For the "Session User", I believe it is working as expected, since session_user can be changed with SET SESSION AUTHORIZATION.
```
$ bin/psql "port=5430 sslmode=disable dbname=postgres" -x -h localhost
postgres=# \conninfo+
Connection Information
-[ RECORD 1 ]--------+----------
Database | postgres
Current User | hunaid
Session User | hunaid
Host | localhost
Host Address | 127.0.0.1
Port | 5430
Protocol Version | 3
SSL Connection | false
GSSAPI Authenticated | false
Client Encoding | UTF8
Server Encoding | UTF8
Backend PID | 1337
postgres=# set SESSION AUTHORIZATION postgres;
SET
postgres=# \conninfo+
Connection Information
-[ RECORD 1 ]--------+----------
Database | postgres
Current User | hunaid
Session User | postgres
Host | localhost
Host Address | 127.0.0.1
Port | 5430
Protocol Version | 3
SSL Connection | false
GSSAPI Authenticated | false
Client Encoding | UTF8
Server Encoding | UTF8
Backend PID | 1337
postgres=# \conninfo+
Connection Information
-[ RECORD 1 ]--------+----------
Database | postgres
Current User | hunaid
Session User | hunaid
Host | localhost
Host Address | 127.0.0.1
Port | 5430
Protocol Version | 3
SSL Connection | false
GSSAPI Authenticated | false
Client Encoding | UTF8
Server Encoding | UTF8
Backend PID | 1337
postgres=# set SESSION AUTHORIZATION postgres;
SET
postgres=# \conninfo+
Connection Information
-[ RECORD 1 ]--------+----------
Database | postgres
Current User | hunaid
Session User | postgres
Host | localhost
Host Address | 127.0.0.1
Port | 5430
Protocol Version | 3
SSL Connection | false
GSSAPI Authenticated | false
Client Encoding | UTF8
Server Encoding | UTF8
Backend PID | 1337
```
We can update the docs as follows:
Authenticated User: The name of the user returned by PQuser().
Session User: The session user's name.
Opinions?
Regards,
Hunaid Sohail
В списке pgsql-hackers по дате отправления: