Thread: сессии пользователей
Здравствуйте,
я задавал вопрос:
Недавно у меня возникла необходимость узнать имя хоста с которого заходит определенный пользователь, раньше эта функциональность была реализована на оракле следующим образом:
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();
ничего не выводится, хотя есть соединение с pgadmin’a да и сама сессия в которой выполняю запрос тож должна считаться. И еще вопрос, если есть несколько соединений с базой, то как мне определить какой пользователь с какого хоста?
__________
Best regards,
Alexey
Здравствуйте,
я задавал вопрос:
Недавно у меня возникла необходимость узнать имя хоста с которого заходит определенный пользователь, раньше эта функциональность была реализована на оракле следующим образом:
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();
ничего не выводится, хотя есть соединение с pgadmin’a да и сама сессия в которой выполняю запрос тож должна считаться. И еще вопрос, если есть несколько соединений с базой, то как мне определить какой пользователь с какого хоста?
--
Vladimir Rusinov
http://greenmice.info/
Да там видно, но есть странная особенность, поля таблички не всегда заполнены...в частности интересующее меня поле адреса соединения бывает пустым, почему так?
__________
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();
ничего не выводится, хотя есть соединение с pgadmin’a да и сама сессия в которой выполняю запрос тож должна считаться. И еще вопрос, если есть несколько соединений с базой, то как мне определить какой пользователь с какого хоста?
Если я правильно понял вопрос, смотрите в view pg_stat_activity - там все будет видно.
--
Vladimir Rusinov
http://greenmice.info/
Attachment
Здравствуйте,
я задавал вопрос:
Недавно у меня возникла необходимость узнать имя хоста с которого заходит определенный пользователь, раньше эта функциональность была реализована на оракле следующим образом:
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();
ничего не выводится, хотя есть соединение с pgadmin’a да и сама сессия в которой выполняю запрос тож должна считаться. И еще вопрос, если есть несколько соединений с базой, то как мне определить какой пользователь с какого хоста?
установлено через локальный Unix-сокет.
__________
Best regards,
Alexey
--
// Dmitriy.
Спасибо, Дмитрий. Разобрался.
__________
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();
ничего не выводится, хотя есть соединение с pgadmin’a да и сама сессия в которой выполняю запрос тож должна считаться. И еще вопрос, если есть несколько соединений с базой, то как мне определить какой пользователь с какого хоста?
Как я уже говорил, данные функции возвращают NULL, если соединение
установлено через локальный Unix-сокет.
__________
Best regards,
Alexey
--
// Dmitriy.