구축형 솔루션 · MS-SQL · PostgreSQL · MySQL/MariaDB

DB 접근제어 게이트웨이

사용자와 DB 서버 사이에서 모든 접속과 쿼리를 통제합니다. 장비 한 대가 접속 포트별로 서로 다른 DB를 중계합니다. 접속마다 메일로 승인을 받고, 위험 쿼리는 실행 전에 차단하며, 사용자는 DB 비밀번호를 모른 채 개인계정으로 접속합니다. 모든 쿼리 전문과 승인 이력이 위변조 방지 장치와 함께 기록되고, 월간 점검 리포트가 자동으로 만들어집니다.

구축 문의하기 app@smart36.co.kr

동작 구조

에이전트 설치 없이, 네트워크 경로에 게이트웨이를 두는 프록시 방식입니다. SSMS·pgAdmin 등 각 DB의 표준 클라이언트를 그대로 사용하며, 접속 포트로 어느 DB에 연결할지 정해집니다.

사용자 PC SSMS · 응용프로그램 SmartDBMon 게이트웨이 접속 승인 확인 · 메일 승인 요청 쿼리 검사·차단 · 계정 금고 · 감사기록 이중화(HA) 2노드 · 자동 절체 MS-SQL 서버 기존 DB 그대로 PostgreSQL 서버 기존 DB 그대로 MySQL / MariaDB 기존 DB 그대로 암호화 접속 포트로 DB 선택 검증된 쿼리만 웹 관리자페이지 · 연동 API — 계정 발급/회수 · 승인 이력 · 사용 로그 · 월간 리포트

주요 기능

개인정보의 안전성 확보조치 기준이 요구하는 DB 접근통제를 하나의 게이트웨이로 충족합니다.

여러 종류의 DB를 한 대로

MS-SQL · PostgreSQL · MySQL / MariaDB를 지원합니다. 관리자페이지에서 접속 포트와 DB 종류·대상 서버를 등록하면 게이트웨이가 즉시 그 포트를 열어 중계하므로, 장비 한 대가 여러 DB를 동시에 담당합니다. 승인·차단·금고·감사 기록은 DB 종류와 무관하게 동일하게 적용되고, 서비스마다 다른 DB 계정을 사람별로 매핑할 수 있습니다.

메일 승인 기반 접속 통제

승인 없이는 DB에 접속할 수 없습니다. 접속을 시도하면 승인자에게 메일이 자동 발송되고, 메일에서 “오늘 몇 시까지 사용할지”를 선택해 승인하면 그 시각까지만 접속됩니다. 승인자는 기본이 본인이며(본인 확인·기록), 팀장 승인이 필요한 계정은 승인자를 따로 지정할 수 있습니다.

승인 1건 = 접속 1회

접속을 종료하거나 무활동으로 세션이 끊기면 그 승인은 즉시 사라져, 다시 접속하려면 재승인을 받아야 합니다. 승인이 계정에 상시 남지 않으므로 자리를 비운 사이의 무단 접속을 막습니다. 관리자는 발급된 접속 권한을 한눈에 보고 즉시 회수할 수 있습니다.

쿼리 실행 전 차단

SQL을 정식 구문 분석해 WHERE 없는 DELETE·UPDATE, 위험 명령(xp_cmdshell 등), 금지 객체 접근을 DB에 도달하기 전에 차단합니다. DB 종류별 문법을 각각 분석하므로 PostgreSQL·MySQL의 정상 구문이 오차단되지 않습니다. 의도한 작업은 확인 코드를 붙여 1회 재실행할 수 있습니다.

대리접속 계정 금고

사용자는 개인계정으로 로그인하고, 게이트웨이가 실제 DB 자격증명을 대신 주입합니다. DB 비밀번호는 AES-256-GCM으로 암호화 보관되며 사용자에게 노출되지 않습니다.

접속기록 위변조 방지

접속·쿼리 전문·승인 부여/회수/거부를 기록하고 레코드를 해시체인으로 연결해 위·변조를 탐지합니다. 대리접속 환경에서도 실행자(개인계정)가 모든 기록에 남아 “누가 무엇을 조회했는지”를 추적할 수 있습니다. 법정 보존기간(1~2년) 보관을 지원합니다.

도구 쿼리 자동 걸러내기

SSMS는 개체 탐색기를 여는 것만으로 수백 건의 메타데이터 쿼리를 보냅니다(pgAdmin·psql·MySQL 클라이언트도 마찬가지입니다). 구문 분석으로 이를 식별해 감사 기록에서 제외하므로, 사용자가 실제로 실행한 쿼리만 로그에 남아 점검이 쉽습니다. 필요하면 전량 기록으로 전환할 수 있습니다.

월간 점검 리포트

대상 월을 고르면 이벤트·일자·시간대별 집계, 사용자별 접속시간(총·평균·최장), 업무시간 외·주말 접속 건수, 접속 PC 목록, 해시체인 무결성 검증 결과가 한 장으로 정리됩니다. 점검자 확인란이 포함되어 그대로 인쇄·PDF 보관할 수 있습니다.

웹 관리자페이지 · 연동 API

계정 발급·회수, 승인 대기 처리, 발급된 접속 권한, 승인 이력, 사용 로그, 월간 리포트를 웹에서 관리합니다. 회수 즉시 해당 사용자의 접속 세션이 절단됩니다. 관리자 로그인과 접속 IP 화이트리스트로 보호되며, 사내 그룹웨어와 연동할 HTTPS API를 제공합니다.

사용자 안내 메일 발송

계정관리 화면에서 버튼 한 번으로 접속 방법(클라이언트 설정·연결 정보), 승인 절차, 이용 규칙을 정리한 안내 메일을 본인에게 보냅니다. 승인 메일 예시 화면이 함께 담겨 있어 별도 교육 없이 바로 사용할 수 있습니다.

이중화(HA)

2노드 액티브-스탠바이 구성으로 단일 장비 장애 시 수 초 내 자동 절체됩니다. 계정 변경은 노드 간 자동 동기화되고, 무중단 업그레이드를 지원합니다.

전송 암호화

클라이언트 구간 TLS를 게이트웨이가 종단해 암호화 접속을 강제합니다. SSMS의 암호화 필수 설정, PostgreSQL 클라이언트의 SSL 모드와 그대로 호환되며, DB 구간 TLS도 선택 적용할 수 있습니다.

결과 통제

지정 컬럼 값을 응답에서 마스킹하고, 임계치를 넘는 대량 조회는 세션을 절단합니다. 무활동 세션은 자동 종료됩니다.

차단 쿼리 실시간 승인

정책에 걸린 쿼리는 차단되는 즉시 승인자에게 메일이 발송됩니다. 승인자가 쿼리 전문과 차단 사유를 확인하고 승인하면 요청자가 10분 내 1회 재실행할 수 있어, 업무를 막지 않으면서 위험 작업만 사람이 확인합니다.

모니터 모드

도입 초기에는 차단 없이 기록만 하는 모니터 모드로 운영해 업무 영향 없이 정책을 다듬은 뒤, 실차단으로 전환합니다.

미리보기

사용자가 받는 승인 메일과, 게이트웨이에 내장된 웹 관리자페이지의 8개 메뉴를 화면별로 정리했습니다. 각 화면이 어떤 일을 하는지 함께 설명합니다.

승인 요청 메일 사용자가 접속을 시도하면 자동 발송

승인 없이는 접속이 거부되고, 승인자(기본값은 본인)에게 이 메일이 발송됩니다. 어디에서 어느 DB로 들어가려는 요청인지 — 접속 PC, 게이트웨이 진입 지점, DB 종류, 대상 DB 주소, 사용될 DB 계정 — 을 확인한 뒤 오늘 몇 시까지 쓸지를 눌러 승인합니다. 본인이 하지 않은 요청이면 거부 버튼으로 차단하고 기록을 남깁니다.

SMARTDBMONDB 접속 승인 요청

아래 내용으로 DB 접속이 요청되었습니다. 본인이 요청한 것이 맞으면 사용할 시각을 선택해 승인하세요.

요청자홍길동 (hong@example.co.kr)
접속 PC10.0.20.31
접속 지점10.0.10.5:14332
DB 종류PostgreSQL
대상 DB10.0.30.21:5432
DB 계정svc_app
오늘 몇 시까지 사용하시겠습니까?
14시 까지16시 까지18시 까지 20시 까지22시 까지자정(24시) 까지
내가 요청한 것이 아님 (거부)
이 승인은 접속 1회에만 유효합니다 — 접속을 종료하거나 무활동으로 끊기면 승인이 사라지고, 다시 접속하려면 승인을 새로 받아야 합니다.

① 서비스 통제할 DB를 접속 포트별로 등록

어떤 DB를 통제할지 정하는 화면입니다. DB 종류(MS-SQL·PostgreSQL·MySQL/MariaDB), 사용자가 접속할 포트, 대상 서버 주소·포트, 대상 구간 TLS 사용 여부를 입력해 등록합니다. 저장하면 게이트웨이가 5초 안에 그 포트를 열어 중계를 시작하며, 다른 포트의 접속 세션은 끊기지 않습니다. 한 대의 게이트웨이가 여러 DB를 동시에 담당하는 근거가 되는 화면입니다.

SmartDBMon 관리자서비스
서비스 등록새로고침 접속 포트별로 서로 다른 DB를 중계합니다 — 등록·수정은 5초 내 자동 반영
서비스 등록
이름웹 서비스 DB DB 종류MySQL / MariaDB ▾ 접속 포트14333 대상 DB 주소10.0.30.31 대상 포트3306 대상 구간 TLS□ 사용 안 함
이름DB 종류접속 포트대상 DB상태메모관리
기간계 DBMS-SQL1433010.0.30.11:1433서비스 중ERP·회계수정 · 삭제
분석 DBPostgreSQL1433210.0.30.21:5432서비스 중통계수정 · 삭제
웹 서비스 DBMySQL / MariaDB1433310.0.30.31:3306서비스 중홈페이지수정 · 삭제

② 계정관리 개인계정 발급·회수와 DB 계정 매핑

사람마다 개인계정(이메일)을 발급하는 화면입니다. 발급 시 개인 비밀번호와 실제 DB 자격증명을 함께 등록하면, 사용자는 DB 비밀번호를 모른 채 개인계정으로 접속하게 됩니다. 승인자를 비우면 본인 승인이고 팀장 승인이 필요하면 다른 주소를 넣습니다. DB 매핑으로 서비스(접속 포트)마다 다른 DB 계정을 지정할 수 있고, 안내 발송은 접속 방법과 이용 규칙을 본인 메일로 보냅니다. 회수하면 그 사용자의 접속 세션이 즉시 끊기며, 발급·회수는 모두 이력으로 남습니다.

SmartDBMon 관리자계정관리
계정 발급새로고침 계정은 이메일 형식 · 승인자를 비우면 본인 승인
개인계정성명부서승인자 이메일기본 DB계정서비스별 매핑상태관리
hong@example.co.kr홍길동기술연구소본인 승인svc_app:14332 anlz_ro정상DB 매핑 · 안내 발송 · 회수
kim@example.co.kr김철수운영팀본인 승인svc_app정상DB 매핑 · 안내 발송 · 회수
lee@example.co.kr이영희운영팀팀장 위임svc_app:14333 web_roMySQL 재발급 필요DB 매핑 · 안내 발송 · 회수
DB 매핑 — 한 사람이 서비스마다 다른 DB 계정을 쓰는 경우
서비스:14332 PostgreSQL — 분석 DB ▾ DB 계정anlz_ro DB 비밀번호••••••••  매핑 저장
발급/회수 이력
일시구분내용
08-28 09:12발급개인계정=lee@example.co.kr [운영팀/이영희] | DB계정=svc_app | 처리자=admin
08-26 17:40회수개인계정=park@example.co.kr | 세션 2건 절단 | 처리자=admin

③ 승인 대기 처리해야 할 요청 목록

승인을 기다리는 요청이 모이는 화면입니다. 두 종류가 있습니다 — DB 접속은 승인 없이 접속을 시도했을 때 생기고(요청자 본인 메일로도 승인 링크가 갑니다), 쿼리 실행은 정책에 걸려 차단된 쿼리를 사람이 확인해 달라는 요청입니다. 메일이 나갔는지 여기서 확인할 수 있고, 관리자가 대신 승인하거나 거부할 수 있습니다. 쿼리 승인은 요청자가 10분 내 같은 쿼리를 1회만 재실행할 수 있게 해 줍니다.

SmartDBMon 관리자승인 대기
새로고침 DB 접속은 요청자 본인 메일로 승인 요청이 가고, 여기서 대신 승인할 수도 있습니다. 쿼리 실행은 승인 시 10분 내 1회 재실행이 허용됩니다.
일시구분요청자내용메일 발송처리
08-28 14:05DB 접속lee@…10.0.20.44 → 10.0.30.21:5432 (PostgreSQL)발송됨18시까지 승인 · 거부
08-28 14:02쿼리 실행hong@…DELETE FROM 고객정보 — WHERE 절 없음발송됨승인 · 거부

④ 접속 권한 지금 살아 있는 접속 승인

현재 유효한 접속 승인을 한눈에 보는 화면입니다. 누가 어느 PC에서, 누구의 승인으로, 몇 시까지 접속할 수 있는지와 남은 시간이 표시됩니다. 회수를 누르면 즉시 권한이 사라지고 접속 중인 세션도 끊깁니다. 승인은 종료 시각이 지나거나 접속이 끊기면(정상 종료·무활동 30분 모두) 자동으로 사라지므로, 이 목록은 평소 짧게 유지되는 것이 정상입니다.

SmartDBMon 관리자접속 권한
새로고침 승인된 DB 접속 권한 — 종료 시각이 지나거나 접속이 끊기면 승인이 사라져 재승인이 필요합니다
개인계정DB계정접속 PC승인자승인 일시종료 시각남은 시간관리
hong@example.co.krsvc_app10.0.20.31본인승인08-28 13:5218:003시간 41분회수
kim@example.co.kranlz_ro10.0.20.18본인승인08-28 14:10자정(24시)9시간 49분회수

⑤ 승인 이력 접속 권한의 부여·회수·거부 기록

접속 승인이 언제 누구에게 주어졌고, 언제 어떤 이유로 사라졌는지를 월별로 조회하는 화면입니다. 구분(부여·회수·거부)과 계정으로 걸러 볼 수 있습니다. 회수 사유가 함께 남기 때문에 세션 종료로 자동 회수된 것인지, 무활동 타임아웃인지, 관리자가 강제로 회수한 것인지 구분됩니다. 고시가 요구하는 권한 부여·말소 이력 보관에 대응하는 화면입니다.

SmartDBMon 관리자승인 이력
조회월 2026-08 구분 전체 계정 개인계정(이메일)검색
부여 131건 · 회수 129건 · 거부 2건 — 접속 승인의 부여·회수·거부 이력(감사로그 기반)
일시구분개인계정접속 PC내용
08-28 13:52부여hong@…10.0.20.31본인승인 · 사용가능 18:00 까지
08-28 12:40회수kim@…10.0.20.18세션 종료로 자동 회수 — 재접속 시 재승인
08-28 11:15회수lee@…10.0.20.44무활동 30분 타임아웃으로 자동 회수
08-27 20:03거부park@…10.0.20.77내가 요청한 것이 아님 (본인 거부)

⑥ 사용 로그 접속·쿼리 전문·차단 기록

실제로 무슨 일이 있었는지 보는 화면입니다. 접속(LOGIN)·쿼리(QUERY)·차단(BLOCK)·대량조회 절단(ROWCUT) 등을 월·유형·계정으로 걸러 조회하며, 실행된 SQL 전문과 실행자(개인계정)·실제 DB 계정이 함께 남습니다. 기본적으로 클라이언트가 자동으로 보내는 메타데이터 쿼리는 빼고 사용자가 직접 실행한 쿼리만 보여 주며, 필요하면 체크박스로 전량 조회할 수 있습니다.

SmartDBMon 관리자사용 로그
조회월 2026-08 유형 전체 계정 개인계정검색 □ 시스템 쿼리 포함
접속 128건 · 쿼리 412건 · 차단 7건 · 대량조회 절단 1건 — 사용자가 직접 실행한 쿼리만 집계
일시접속IP개인계정DB계정유형SQL
08-28 14:0210.0.20.31hong@…svc_appBLOCKDELETE FROM 고객정보 — WHERE 절 없음
08-28 13:5810.0.20.31hong@…svc_appQUERYSELECT TOP 100 * FROM 주문내역 WHERE ...
08-28 13:5510.0.20.18kim@…anlz_roQUERYSELECT 이름, 연락처 FROM 고객 WHERE ... — PostgreSQL(:14332)
08-28 13:5010.0.20.18kim@…anlz_roLOGIN분석 DB(:14332) · 대리접속 · 승인만료 24:00

⑦ 월간 리포트 월 1회 점검용 요약 — 인쇄·PDF 보관

대상 월을 고르면 한 달치 접속기록이 한 장으로 정리됩니다. 이벤트·일자·시간대별 집계, 사용자별 접속시간(총·평균·최장), 업무시간 외·주말 접속 건수, 접속에 사용된 PC 목록, 그리고 감사로그 해시체인 무결성 검증 결과가 포함됩니다. 점검자 확인란이 있어 그대로 인쇄하거나 PDF로 저장해 보관하면 됩니다. 고시가 요구하는 접속기록 월 1회 점검에 대응하는 화면입니다.

SmartDBMon 관리자월간 리포트
대상월 2026-08리포트 생성인쇄 / PDF 저장 □ 시스템 쿼리 포함
2026-08 접속기록 요약 — 접속 128건 · 쿼리 412건 · 차단 7건 · 승인 부여 131건 / 회수 129건
접속시간 합계 46시간 12분(세션 131건) · 업무시간 외·주말 접속 4건 · 감사로그 무결성 정상(12,847건 검증)
개인계정접속접속시간평균업무시간 외쿼리차단
hong@example.co.kr6224시간 8분23분02385
kim@example.co.kr4115시간 3분22분31462
lee@example.co.kr257시간 1분17분1280
점검자 확인 — 점검일 ______ · 점검자 ______ (서명) · 특이사항 ______

⑧ 설정 관리자 계정과 접속 허용 IP

관리자페이지 자체를 지키는 화면입니다. 관리자 아이디·비밀번호를 변경하고(현재 비밀번호 확인 필수), 관리자페이지와 연동 API에 접속할 수 있는 IP 화이트리스트를 관리합니다. 목록을 비우면 전체 허용이 되므로 권장하지 않으며, 이중화 노드나 연동 서버 IP를 지우면 동기화가 끊기니 주의가 필요합니다. 현재 접속 중인 IP를 함께 표시해 실수로 본인을 차단하는 것을 막습니다.

SmartDBMon 관리자설정
관리자 계정 변경
현재 비밀번호 (필수)•••••••• 새 아이디 (변경 시에만)현재: admin 새 비밀번호 (6자 이상)••••••••  계정 변경 저장
접속 허용 IP
관리자페이지·연동 API에 접속할 수 있는 IP 목록(줄바꿈 구분). 비우면 전체 허용(비권장).
10.0.20.0/24
10.0.10.5
10.0.10.6
현재 접속 IP: 10.0.20.31 — 목록에서 빼면 본인도 차단됩니다.

화면은 이해를 돕기 위한 예시 데이터입니다.

법적 요건 대응

개인정보의 안전성 확보조치 기준(개인정보보호위원회 고시)의 DB 접근통제 요건에 대응합니다.

고시 요건SmartDBMon 기능
제5조 접근 권한 관리 — 개인별 계정, 권한 부여·말소 이력 3년 보관개인계정 발급/회수(웹 관리)와 이력 자동 기록, 접속 승인 부여·회수·거부 이력(승인자·시각·경로 포함)
제6조 접근 통제 — 미인가 접근 차단, 무활동 세션 종료, 암호화 접속미등록 계정 접속 거부, 승인 없는 접속 차단, 무활동 자동 절단(승인도 함께 회수), TLS 강제
제8조 접속기록 — 보관(1~2년)·위변조 방지·월 1회 점검쿼리 전문 + 실행자 기록 + 해시체인, 월간 점검 리포트(사용자별 접속시간·업무시간 외 접속·무결성 검증) 자동 생성
(실무) 사전 승인 접근 · 위험쿼리 통제접속 시각 지정 승인(1승인 1접속), 실행 전 차단 + 확인 코드/실시간 승인 예외 통로

구축

기존 DB와 클라이언트를 변경하지 않는 구축형 솔루션입니다. 소규모는 미니PC급 장비 2대로 이중화까지 구성됩니다.

환경 협의

DB 서버·사용자 규모·네트워크 경로를 확인하고 장비 사양과 구성(단일/HA)을 정합니다.

설치

설치 스크립트로 게이트웨이·관리자페이지·포털을 구성하고, 통제할 DB를 접속 포트별 서비스로 등록합니다. Linux·Windows를 모두 지원합니다.

모니터 운영

차단 없이 기록만 하는 모니터 모드로 운영하며 사용자 계정을 발급하고 정책을 조정합니다.

전환·차단

실차단으로 전환하고, 방화벽에서 게이트웨이 외 DB 직접 접속을 차단해 우회를 봉쇄합니다.

권장 사양: 4코어 · 8GB RAM · SSD 256GB 이상 장비 1~2대(HA) — 사용자 10명·로그 3년 보존 기준. 라이선스는 회사 단위 발급(서명 검증)입니다.

구축 문의

도입 환경을 알려주시면 구성과 일정, 견적을 안내해 드립니다.

app@smart36.co.kr 로 문의하기