AI VIDEO BRIEFING
SQL MCP 서버 해설: 데이터 API 빌더로 AI 에이전트에 데이터베이스를 안전하게 연결하는 방법
마이크로소프트가 공개한 SQL MCP 서버는 AI 에이전트가 SQL을 직접 작성하지 않고도 데이터베이스를 조회하게 한다. 설정 파일 몇 줄로 도구를 노출하는 구조와 권한·행 수준 보안 설계, 조인을 일부러 뺀 이유까지 정리했다.

핵심 메시지
쉽게 이해하기
발표자는 2022년 무렵부터 개발자들이 데이터베이스 연결에 들어가는 이른바 배관 코드에 시간을 너무 많이 쓴다는 신호를 감지했다고 말한다. 연결 풀링을 제대로 맞추고, 쿼리를 올바르게 조립하고, SQL 인젝션을 막는 일이 매번 반복됐다는 것이다. 여기에 2023년부터는 자연어를 SQL로 바꿔주는 시연이 쏟아졌지만, 실제로 만들어진 쿼리의 품질이 형편없는 경우가 많았다는 진단이 더해진다.
그 대안으로 소개된 것이 데이터 API 빌더, 줄여서 DAB다. DAB는 마이크로소프트가 만들어 배포하는 크로스플랫폼 프로그램으로, 개발자는 코드를 짜는 대신 JSON 설정 파일을 작성한다. 이 파일에 데이터베이스 종류와 연결 문자열, 그리고 외부에 노출할 테이블·뷰·저장 프로시저를 적으면 REST와 GraphQL 엔드포인트가 만들어진다. 컨테이너로도, 쿠버네티스나 앱 서비스로도, 심지어 노트북의 단일 프로세스로도 띄울 수 있다.
핵심은 여기서 설정에 모델 컨텍스트 프로토콜(MCP)을 허용하는 항목을 추가하고 프로세스를 재시작하면, 코드를 한 줄도 쓰지 않고 데이터베이스용 MCP 서버가 생긴다는 점이다. 발표자는 'MCP 서버를 직접 개발할 일은 없다'고 못 박는다. 모델에게 제공되는 도구는 카탈로그를 읽어오는 describe entities, 테이블과 뷰를 읽는 read records, 집계를 담당하는 aggregate records, 생성·수정·삭제, 저장 프로시저를 실행하는 execute entity 등으로 이미 정해져 있다.
실제 동작은 디버그 화면으로 확인된다. 프롬프트가 들어오면 모델은 먼저 describe entities를 호출해 설정 파일에 적힌 객체와 필드 목록을 카탈로그로 받아본다. 그다음 어떤 도구를 어떤 조건으로 호출할지 결정하고, 실행은 DAB가 파라미터화된 sp_executesql 형태로 수행한다. 결과는 항상 JSON으로 돌아오며, 한 번에 백 건 단위로 끊어 가져오는 페이지네이션이 기본이다.
의도적으로 빠진 기능도 있다. 여러 테이블을 조인하는 도구는 제공되지 않는데, 모델이 쿼리를 조립하게 두지 않겠다는 방침 때문이다. 조인이 필요하면 뷰나 저장 프로시저를 만들어 노출하고, 자주 쓰는 프로시저는 이름과 설명을 붙인 커스텀 도구로 등록하면 된다. 시연에서는 '부품 구성'을 묻는 프롬프트에 '자재 명세서'라는 단어가 없었는데도, 설명에 그 개념을 적어둔 커스텀 도구가 선택되면서 훨씬 풍부한 결과가 나왔다.
주요 인사이트
- 이 접근의 본질은 모델을 똑똑하게 만드는 것이 아니라, 모델이 건드릴 수 있는 표면을 설계로 좁히는 것이다. 임의 SQL이 사라지면 계획 캐시 재사용 같은 부수적 이득도 따라온다.
- 보안은 두 겹으로 나뉜다. 설정 계층에서 역할 기반 권한을 걸 수도 있고, 그 계층을 열어두고 기존 데이터베이스 권한 체계에 전부 맡길 수도 있다. 세션 컨텍스트를 켜면 연결 풀링을 유지하면서도 행 수준 보안에 실제 사용자 신원을 넘길 수 있다.
- 설명 문구가 곧 인터페이스다. 사내 명명 규칙이 알아보기 어려울수록 테이블·필드·프로시저에 붙인 설명이 모델의 도구 선택 정확도를 결정한다.
- 연결 문자열은 설정 파일에 박아넣지 않고 환경 변수로 주입하는 것이 전제다. 설정 파일 자체도 손으로 고치기보다 전용 명령줄 도구나 코딩 보조 도구로 갱신하라는 권고가 반복된다.
- 같은 이름을 달고 있어도 플랫폼 운영용 MCP 서버와 데이터 접근용 MCP 서버는 목적이 다르다. 전자는 데이터베이스를 배포·관리하는 용도이고, 여기서 다룬 것은 데이터를 읽고 쓰는 통로다.
자주 묻는 질문
AI 모델이 SQL 쿼리를 직접 작성하는 것과 무엇이 다른가요?
모델은 SQL을 만들지 않습니다. 설정 파일에 등록된 도구 중 무엇을 어떤 조건으로 호출할지만 정하고, 실제 쿼리 조립과 실행은 데이터 API 빌더가 파라미터화된 형태로 처리합니다. 그래서 임의로 만들어진 쿼리가 데이터베이스에 도달하지 않습니다.
여러 테이블을 조인해야 하는 질문은 어떻게 처리하나요?
조인 전용 도구는 제공되지 않습니다. 필요한 조인은 뷰나 저장 프로시저로 미리 만들어 설정 파일에 노출해야 하며, 자주 쓰는 프로시저는 설명을 붙인 커스텀 도구로 등록하면 모델이 더 정확하게 골라 씁니다.
데이터베이스 전체가 AI에게 열리는 것인가요?
아닙니다. 설정 파일에 적어 넣은 테이블·뷰·저장 프로시저만 노출되고, 나머지는 모델이 존재조차 알 수 없습니다. 여기에 역할 기반 권한과 기존 데이터베이스 보안을 함께 적용할 수 있습니다.
직접 따라 해보려면 비용이 드나요?
발표에 따르면 데이터 API 빌더는 오픈소스로 무료이고, 개발자용 SQL 서버 에디션과 함께 노트북에서 전부 로컬로 실행해볼 수 있습니다. 세션에서 쓰인 스크립트와 문서는 공개 저장소에 정리돼 있다고 안내됐습니다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗