Thread: сессии пользователей

сессии пользователей

From
"Galin, Aleksey"
Date:

Здравствуйте,

 

я задавал вопрос:

Недавно у меня возникла необходимость узнать имя хоста с которого заходит определенный пользователь, раньше эта функциональность была реализована на оракле следующим образом:

select unique MACHINE from v\$session where username = '$o_user';

как в postgresql можно узнать хост пользователя?

 

И Вы посоветовали мне воспользоваться inet_client_addr(), inet_client_port(), но если залогинится в базу, то на ввод таких запросов как

select inet_client_addr();

select inet_server_addr();

 

ничего не выводится, хотя есть соединение с pgadmina да и сама сессия в которой выполняю запрос тож должна считаться. И еще вопрос, если есть несколько соединений с базой, то как мне определить какой пользователь с какого хоста?

 

__________

Best regards,

Alexey

 

 

Re: [pgsql-ru-general] сессии пользователей

From
Vladimir Rusinov
Date:
2011/7/4 Galin, Aleksey <algalin@mera.ru>

Здравствуйте,

 

я задавал вопрос:

Недавно у меня возникла необходимость узнать имя хоста с которого заходит определенный пользователь, раньше эта функциональность была реализована на оракле следующим образом:

select unique MACHINE from v\$session where username = '$o_user';

как в postgresql можно узнать хост пользователя?

 

И Вы посоветовали мне воспользоваться inet_client_addr(), inet_client_port(), но если залогинится в базу, то на ввод таких запросов как

select inet_client_addr();

select inet_server_addr();

 

ничего не выводится, хотя есть соединение с pgadmina да и сама сессия в которой выполняю запрос тож должна считаться. И еще вопрос, если есть несколько соединений с базой, то как мне определить какой пользователь с какого хоста?


Если я правильно понял вопрос, смотрите в view pg_stat_activity - там все будет видно.

--
Vladimir Rusinov
http://greenmice.info/

RE: [pgsql-ru-general] сессии пользователей

From
"Galin, Aleksey"
Date:

Да там видно, но есть странная особенность, поля таблички не всегда заполнены...в частности интересующее меня поле адреса соединения бывает пустым, почему так?

 

 

__________

Best regards,

Alexey

 

 

From: Vladimir Rusinov [mailto:vladimir@greenmice.info]
Sent: Monday, July 04, 2011 5:20 PM
To: Galin, Aleksey
Cc: pgsql-ru-general@postgresql.org
Subject: Re: [pgsql-ru-general] сессии пользователей

 

2011/7/4 Galin, Aleksey <algalin@mera.ru>

Здравствуйте,

 

я задавал вопрос:

Недавно у меня возникла необходимость узнать имя хоста с которого заходит определенный пользователь, раньше эта функциональность была реализована на оракле следующим образом:

select unique MACHINE from v\$session where username = '$o_user';

как в postgresql можно узнать хост пользователя?

 

И Вы посоветовали мне воспользоваться inet_client_addr(), inet_client_port(), но если залогинится в базу, то на ввод таких запросов как

select inet_client_addr();

select inet_server_addr();

 

ничего не выводится, хотя есть соединение с pgadmina да и сама сессия в которой выполняю запрос тож должна считаться. И еще вопрос, если есть несколько соединений с базой, то как мне определить какой пользователь с какого хоста?

 

Если я правильно понял вопрос, смотрите в view pg_stat_activity - там все будет видно.


--
Vladimir Rusinov
http://greenmice.info/

Attachment

Re: [pgsql-ru-general] сессии пользователей

From
Dmitriy Igrishin
Date:
Здравствуйте,

4 июля 2011 г. 16:49 пользователь Galin, Aleksey <algalin@mera.ru> написал:

Здравствуйте,

 

я задавал вопрос:

Недавно у меня возникла необходимость узнать имя хоста с которого заходит определенный пользователь, раньше эта функциональность была реализована на оракле следующим образом:

select unique MACHINE from v\$session where username = '$o_user';

как в postgresql можно узнать хост пользователя?

 

И Вы посоветовали мне воспользоваться inet_client_addr(), inet_client_port(), но если залогинится в базу, то на ввод таких запросов как

select inet_client_addr();

select inet_server_addr();

 

ничего не выводится, хотя есть соединение с pgadmina да и сама сессия в которой выполняю запрос тож должна считаться. И еще вопрос, если есть несколько соединений с базой, то как мне определить какой пользователь с какого хоста?

Как я уже говорил, данные функции возвращают NULL, если соединение
установлено через локальный Unix-сокет.
 

 

__________

Best regards,

Alexey

 

 




--
// Dmitriy.


RE: [pgsql-ru-general] сессии пользователей

From
"Galin, Aleksey"
Date:

Спасибо, Дмитрий. Разобрался.

__________

Best regards,

Alexey

 

 

From: Dmitriy Igrishin [mailto:dmitigr@gmail.com]
Sent: Monday, July 04, 2011 5:53 PM
To: Galin, Aleksey
Cc: pgsql-ru-general@postgresql.org
Subject: Re: [pgsql-ru-general] сессии пользователей

 

Здравствуйте,

4 июля 2011 г. 16:49 пользователь Galin, Aleksey <algalin@mera.ru> написал:

Здравствуйте,

 

я задавал вопрос:

Недавно у меня возникла необходимость узнать имя хоста с которого заходит определенный пользователь, раньше эта функциональность была реализована на оракле следующим образом:

select unique MACHINE from v\$session where username = '$o_user';

как в postgresql можно узнать хост пользователя?

 

И Вы посоветовали мне воспользоваться inet_client_addr(), inet_client_port(), но если залогинится в базу, то на ввод таких запросов как

select inet_client_addr();

select inet_server_addr();

 

ничего не выводится, хотя есть соединение с pgadmina да и сама сессия в которой выполняю запрос тож должна считаться. И еще вопрос, если есть несколько соединений с базой, то как мне определить какой пользователь с какого хоста?

Как я уже говорил, данные функции возвращают NULL, если соединение
установлено через локальный Unix-сокет.
 

 

__________

Best regards,

Alexey

 

 




--
// Dmitriy.