AS

ashishsinha1602/schemagate

Database management

이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요. 원문 보기

179 stars 2 forks 품질 86 트렌드 52Apache-2.0

텍스트--SQL 접근 제어: 호출자가 읽을 수 있는 테이블만 LLM에 제공하는 스키마 선택. LangChain, MCP 및 모든 SQL 에이전트를 위한 행 수준의 보안 인식 테이블 가지치기.

개요

텍스트-to-SQL 에이전트는 호출자가 읽을 수 있는 테이블을 확인하기 전에 모델을 보여줄 테이블을 선택합니다. Schemagate가 먼저 검사를 합니다: 호출자의 부여 수로 스키마를 필터링하여 제한된 테이블이 프롬프트에 없도록 합니다. LangChain, MCP 또는 Postgres, Oracle, MySQL, SQL Server, SQLite에서 모든 SQL 에이전트와 호환됩니다. 만약 이 기능이 절대 도달하지 말아야 할 프롬프트에서 테이블을 제외한다면, ⭐ SQL 에이전트를 만드는 다른 사람들이 그 테이블을 찾는 데 도움을 줍니다. 행 수준 보안만으로는 실패가 조용합니다: 모델은 호출자가 읽을 수 없는 테이블에 대해 유효한 SQL을 작성하고, RLS는 모든 행을 제거하며, 사용자에게 "기록을 찾지 못함"이라는 메시지를 받는데, 이는 "이 데이터가 존재하지 않습니다"와 구분되지 않습니다. 데모 · 설치 · 벤치마크 · 로컬 모델 · 비용 · 바나에서 왔습니다 같은 질문입니다. 두 명의 발신자, 데이터베이스도 없고 키도 없습니다: 결석, 순위가 낮지 않음.

개요(AI 번역)

텍스트-to-SQL 에이전트는 호출자가 읽을 수 있는 테이블을 확인하기 전에 모델을 보여줄 테이블을 선택합니다. Schemagate가 먼저 검사를 합니다: 호출자의 부여 수로 스키마를 필터링하여 제한된 테이블이 프롬프트에 없도록 합니다. LangChain, MCP 또는 Postgres, Oracle, MySQL, SQL Server, SQLite에서 모든 SQL 에이전트와 호환됩니다.

만약 이 기능이 절대 도달하지 말아야 할 프롬프트에서 테이블을 제외한다면, ⭐ SQL 에이전트를 만드는 다른 사람들이 그 테이블을 찾는 데 도움을 줍니다.

행 수준 보안만으로는 실패가 조용합니다: 모델은 호출자가 읽을 수 없는 테이블에 대해 유효한 SQL을 작성하고, RLS는 모든 행을 제거하며, 사용자에게 "기록을 찾지 못함"이라는 메시지를 받는데, 이는 "이 데이터가 존재하지 않습니다"와 구분되지 않습니다.

데모 · 설치 · 벤치마크 · 로컬 모델 · 비용 · 바나에서 왔습니다

같은 질문입니다. 두 명의 발신자, 데이터베이스도 없고 키도 없습니다:

부재, 순위가 낮지 않음. 발신자가 읽지 못할 수 있는 테이블은 결코 즉, 질문을 바꾸어도 도달하지 못하고 답변은 나중에 필터링하세요.

브라우저에서 시도해 보세요 — 아니요 설치, 데이터베이스 없음, 모델 호출 없음.

그리고 대답한다

선택은 프롬프트이므로 나머지는 다음과 같습니다:

이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요.

README

원문 README의 일부입니다. 원문 보기.

schemagate — text-to-SQL access control at schema selection

Your text-to-SQL agent picks which tables to show the model before anyone checks what the caller is allowed to read. schemagate does the check first: it filters the schema by the caller’s grants, so restricted tables are absent from the prompt rather than ranked low. Works with LangChain, LlamaIndex, MCP, or any SQL agent, on Postgres, Oracle, MySQL, SQL Server and SQLite.

If it keeps a table out of a prompt it should never have reached, a ⭐ helps other people building SQL agents find it.

With row-level security alone the failure is quiet: the model writes valid SQL against a table the caller cannot read, RLS strips every row, and the user is told “no records found” — indistinguishable from “this data does not exist.”

GitHub에서 전체 README 보기

설치

uvx --from schemagate[mcp postgres
MCP 초보자라면? mcpskill.org 가이드부터 시작하세요 →

설정

{"mcpServers": {"schemagate": { "command": "uvx", "args": ["--from", "schemagate[mcp,postgres]", "schemagate-mcp"], "env": {"SCHEMAGATE_DATABASE_URL": "postgresql+psycopg://user:password@localhost/app"}}}}