본문 바로가기

PostgreSQL

PostgreSQL에서 누가 접속했는지 확인할 수 있을까? PostgreSQL을 사용하다가 문득 궁금한 게 생겼다.지금 DB에 누가 접속해 있는지는 알 수 있을 것 같은데,예전에 누가 접속했는지도 확인할 수 있을까? DBeaver나 pgAdmin 같은 툴로 DB에 접속하면 당연히 PostgreSQL 서버와 연결이 만들어진다.그렇다면 서버 어딘가에는 접속한 계정이나 IP 같은 정보가 남아 있지 않을까 싶어서 확인해봤다.결론부터 말하면 현재 접속 정보와 과거 접속 이력은 따로 생각해야 했다.현재 누가 접속해 있는지는 확인할 수 있다PostgreSQL에는 pg_stat_activity라는 시스템 뷰가 있다.현재 DB에 연결되어 있는 세션을 확인할 때 사용할 수 있다. SELECT datname, usename, client_addr, applic.. 더보기
좌표계만 바꾸면 되는 줄 알았다... ST_SetSRID와 ST_Transform은 완전히 달랐다 PostgreSQL에서 공간 데이터를 다루다 보면 이런 쿼리를 자주 보게 된다. ST_SetSRID(geom, 5179) 그리고 이런 것도 있다. ST_Transform(geom, 5179) 둘 다 뒤에 EPSG 코드가 들어가다 보니 처음 봤을 때는 비슷한 기능이라고 생각했다.특히 좌표계를 바꿔야 하는 상황에서 이름만 보면 SetSRID도 좌표계를 설정하는 함수니까 이걸 사용하면 되는 것처럼 보였다.그런데 둘은 하는 일이 완전히 달랐다.ST_SetSRID는 좌표값을 바꾸지 않는다먼저 ST_SetSRID부터 보면 이름 그대로 geometry에 SRID를 설정하는 함수다.예를 들어 좌표가 이렇게 있다고 해보자.126.97, 37.56 여기에 ST_SetSRID(geom, 4326) 을 실행한다고 해서 좌표가.. 더보기