← Wszystkie artykuły

Kontrola dostępu w RAG — jak nie dać jednemu klientowi czytać danych drugiego

Nowy preprint arXiv (2606.19803) opisuje framework drobnoziarnistej kontroli dostępu (FGAC) dla wektorowych baz danych. Problem jest realny: standardowe bazy wektorowe nie wiedzą, który użytkownik zadaje pytanie, więc RAG może zwrócić dokumenty, których dany użytkownik nie powinien widzieć.

Wektorowe bazy danych takie jak pgvector, Qdrant czy Weaviate świetnie odnajdują semantycznie podobne fragmenty tekstu — ale nie mają wbudowanego mechanizmu sprawdzania, czy konkretny użytkownik ma prawo zobaczyć wyniki. W środowiskach multi-tenant (np. jeden system ERP obsługujący wielu klientów) to poważna luka: RAG może zwrócić dane jednej firmy do użytkownika z innej.

Jak działa proponowany FGAC

Autorzy definiują politykę dostępu jako trzy elementy:

  • Object constraints — predykaty na metadanych dokumentu (np. klient_id = 'firma_X')
  • Subject constraints — atrybuty osoby pytającej (jej rola, dział, poziom uprawnień)
  • Decyzja — allow lub deny

Następnie porównują cztery strategie wymuszania tej polityki przy wyszukiwaniu semantycznym:

Strategia Kiedy filtrować Kompromis
Pre-filtering Przed ANN search Wysoka precyzja, słaby recall przy restrykcyjnych politykach
Post-filtering Po ANN search Dobry recall, ale marnuje zasoby na wyliczenie niedozwolonych wyników
Iterative Wielokrotne ANN z rozszerzanym k Dobry balans, wyższe koszty latencji
Parallel filtering Równoległe zapytania z wariantami Najlepszy recall, ale duże zużycie zasobów

Autorzy proponują cost-based optimizer, który dynamicznie wybiera strategię zależnie od charakterystyki zapytania (selektywność polityki, rozmiar indeksu, wymagany recall).

Dlaczego to pilne

Przy standardowym podejściu (brak filtrowania) wystarczy jedno osadzone zdanie z dokumentu innego klienta, by RAG „wyciekł" informacje do nieuprawnionego użytkownika — bez żadnego błędu w logach. To szczególnie groźne, gdy dane wektoryzuje się razem (np. umowy, specyfikacje produkcyjne różnych kontrahentów w jednym indeksie).

#RAG#vector database#bezpieczeństwo#multi-tenant#arXiv#FGAC

Źródła