SQL을 통해 활성 사용자를 postgreSQL 데이터베이스에 연결하려면 어떻게해야합니까? 사용자 ID 또는 사용자 수일 수 있습니다.
답변:
(질문) 당신은 그 정보를 얻지 않습니까?
선택 * from pg_user ;
또는 pg_stat_activity 보기 사용 :
select * from pg_stat_activity;
추가 :
보기는 말한다 :
데이터베이스 OID, 데이터베이스 이름, 프로세스 ID, 사용자 OID, 사용자 이름 , 현재 쿼리, 쿼리 대기 상태, 현재 쿼리 실행이 시작된 시간, 프로세스가 시작된 시간, 클라이언트 주소 및 포트 번호 . 현재 쿼리에 대한 데이터를보고하는 열은 stats_command_string 매개 변수가 꺼져 있지 않으면 사용할 수 있습니다. 또한 이러한 열은보기를 검사하는 사용자가 수퍼 유저이거나보고되는 프로세스를 소유 한 사용자와 동일한 경우에만 표시됩니다.
필터링해서 그 정보를 얻을 수 없습니까? 데이터베이스의 현재 사용자가 될 것입니다. 예를 들어, 시작된 실행 시간을 사용하여 지난 5 분의 모든 쿼리를 가져올 수 있습니다.
그런 것.
OP 는 특정 데이터베이스에 연결된 사용자를 요청했습니다 .
-- Who's currently connected to my_great_database?
SELECT * FROM pg_stat_activity
WHERE datname = 'my_great_database';
이것은 (다른 사람들이 언급했듯이) 다음과 같은 모든 종류의 수분이 많은 정보를 얻습니다.
usesysid
)usename
)appname
), 해당 변수를 설정해야하는 경우-psql
수행 :-)client_addr
)query
).