Claude i ChatGPT w DBeaverze bez klucza API — jak to działa i gdzie są granice

Jak używać Claude (Claude Code) lub ChatGPT/Codex w DBeaverze bez klucza API: logowanie przez własne CLI, SQL ze znajomością schematu, zapisy pod bramką.

Ujawnienie: pracuję nad SQL Sage for DBeaver — narzędziem opisanym w drugiej połowie tekstu. Pierwsza połowa to jednak kryteria, którymi możesz ocenić dowolną wtyczkę AI do DBeavera, także moją.

Wpisujesz w wyszukiwarkę „claude dbeaver” albo „chatgpt dbeaver” i zwykle trafiasz na ten sam przepis: wygeneruj klucz API u dostawcy modelu, wklej go w ustawieniach, gotowe. Działa. Ale ten przepis przemyca trzy decyzje, których nikt nie zapisał:

  1. Kto pilnuje sekretu? Klucz API to hasło do Twojego rachunku u dostawcy modelu, tyle że bez drugiego składnika i zwykle bez daty ważności.
  2. Za co płacisz? Klucz rozlicza się za tokeny — osobno od subskrypcji Claude czy ChatGPT, którą prawdopodobnie już masz.
  3. Co asystent może zrobić z bazą? DBeaver trzyma połączenia do wielu silników naraz, często także produkcyjnych. Asystent, który sam uruchamia SQL, musi mieć hamulec.

Poniżej po kolei: dlaczego klucz jest obciążeniem, jak wygląda podejście bez klucza, co powinien robić asystent w DBeaverze i jak to złożyć w praktyce.

1. Klucz API to sekret, który zaczynasz przechowywać

Klucz API wklejony do narzędzia przestaje być „ustawieniem”. Staje się sekretem, który od tej chwili żyje w pliku konfiguracyjnym na dysku, w kopiach zapasowych tego pliku, czasem w eksporcie ustawień, który wysyłasz koledze. Wystarczy jedno udostępnienie ekranu z otwartym oknem preferencji.

Do tego dochodzi drugi rachunek. Klucz API rozlicza się za zużyte tokeny, niezależnie od tego, że w terminalu korzystasz już z planu Claude albo ChatGPT. Ten sam człowiek płaci dwa razy za ten sam model, tylko innym kanałem.

Szerzej rozpisałem to w tekście AI bez klucza API: argument bezpieczeństwa. Tu wystarczy zasada kciuka: jeśli nie masz konkretnego powodu, żeby zarządzać kluczem, nie zarządzaj nim.

2. Jak działa podejście bez klucza: logowanie przez Twoje własne CLI

Alternatywą jest wtyczka, która nie rozmawia z modelem sama, tylko steruje narzędziem wiersza poleceń, w które już jesteś zalogowany:

  • Claude — przez claude, czyli Claude Code CLI, zalogowane kontem Claude.
  • ChatGPT/Codex — przez codex, zalogowane kontem ChatGPT.

Logowanie zostaje w CLI. Wtyczka nie dostaje klucza ani tokenu — co najwyżej pyta CLI, czy sesja jest zalogowana, a potem przekazuje mu pytanie i odbiera odpowiedź. Zużycie liczy się do planu, który już masz, na warunkach dostawcy.

Sprawdzić stan logowania możesz sam, tymi samymi komendami, których używa taka wtyczka:

where claude                 # czy CLI jest na PATH
claude auth status --json    # oczekiwane: {"loggedIn":true,...}
codex login status           # to samo dla Codex

Jedno pytanie warto zadać każdej wtyczce „bez klucza”: czy na pewno nigdzie nie zapisuje poświadczeń? Jeśli w jej ustawieniach jest pole na token, to nie jest podejście bez klucza, tylko klucz pod inną nazwą.

3. Co asystent AI powinien robić w DBeaverze

Samo logowanie to dopiero połowa. W DBeaverze pracujesz z konkretnym połączeniem i konkretnym silnikiem, więc dobry asystent musi to uwzględniać.

Pisać SQL na podstawie schematu, nie zgadywać

Model, który nie widzi Twojego schematu, wymyśla nazwy tabel i kolumn, które brzmią wiarygodnie. Asystent powinien czytać metadane aktywnego połączenia — tabele, kolumny, klucze, indeksy — i pisać SQL w dialekcie tego połączenia. W DBeaverze to ma znaczenie podwójne, bo to samo pytanie inaczej zapisuje się w PostgreSQL, a inaczej w SQL Server czy Oracle (różnice rozpisałem w porównaniu pięciu silników).

Domyślnie tylko odczyt, zapisy pod bramką

Wzorzec, który warto egzekwować niezależnie od narzędzia:

  • SELECT może wykonać się od razu.
  • Wszystko, co nie jest udowodnionym odczytem — INSERT, UPDATE, DELETE, DDL, a także instrukcja, której parser nie rozumie — zatrzymuje się i czeka na Twoje potwierdzenie z pokazanym dokładnym SQL.
  • Kilka instrukcji naraz to czerwona flaga. SELECT 1; DROP TABLE t nie powinno przejść jako „odczyt”, bo zaczyna się od SELECT.

Wysyłać schemat i SQL, nie wiersze

Do napisania zapytania model potrzebuje struktury, nie danych. Rozsądna wartość domyślna: do modelu trafiają treść SQL i metadane schematu, a z wykonanego odczytu — nazwy kolumn i liczba wierszy, bez wartości. Pokazanie wartości modelowi powinno być świadomym włączeniem. Więcej o tym w tekście Czy AI widzi Twoje dane, gdy pisze SQL?

4. Gdzie w to wpisuje się SQL Sage for DBeaver

SQL Sage for DBeaver to wtyczka do DBeaver 26.x (Community lub PRO) zbudowana dokładnie wokół powyższych kryteriów:

  • Bez klucza API — loguje się przez CLI claude albo codex, które masz zalogowane. Wtyczka nie prosi o klucz, nie przechowuje go i nie wysyła; sprawdza tylko status logowania komendą CLI. Między Claude a ChatGPT/Codex przełączasz się w jednym panelu.
  • SQL ze znajomością schematu — odpowiada dla aktywnego połączenia, opiera SQL na żywym schemacie (tabele, kolumny, klucze, indeksy) i pisze w dialekcie tego połączenia: PostgreSQL, MySQL/MariaDB, Oracle, SQL Server i SQLite.
  • Domyślnie tylko odczyt, z bramką — każda instrukcja przechodzi przez jeden klasyfikator, zanim dotknie bazy. Zwykły SELECT się wykonuje; cokolwiek innego czeka na okno potwierdzenia z dokładnym SQL, a kilka instrukcji w jednym wywołaniu jest odrzucanych. Połączenie możesz oznaczyć jako Read-only albo No execution, jest też globalny wyłącznik dla instrukcji inicjowanych przez AI.
  • Schemat i SQL, nie wiersze — wartości z wyników domyślnie nie trafiają do modelu. Jeśli włączysz ich udostępnianie (/share on albo pole w ustawieniach), zgoda obowiązuje, dopóki jej nie wyłączysz. Każda decyzja klasyfikatora i każda wykonana instrukcja trafia do lokalnego logu audytu na Twoim dysku.

Mechanizm logowania od środka opisuje strona Claude i ChatGPT w DBeaverze bez klucza API (EN), a skrót tego, z jakimi bazami działa wtyczka i co trafia do modelu, znajdziesz na stronie SQL Sage for DBeaver.

5. Konfiguracja w skrócie

Pełna instrukcja, z wymaganiami i typowymi błędami, jest w dokumentacji (EN). W dużym skrócie:

  1. Zainstaluj wtyczkę w DBeaverze: Help → Install New Software… → Add… i adres update site https://sqlsagedbeaver.lumasoft.org/updatesite, potem restart.
  2. Zaloguj się do CLI raz: uruchom claude i użyj /login albo wykonaj codex login. Jeśli już używasz któregoś w terminalu, ten krok masz za sobą.
  3. Otwórz panel czatu skrótem Ctrl+Alt+A. Pasek statusu pokazuje, w którego dostawcę jesteś zalogowany.
  4. Zadaj pytanie po ludzku — asystent przejrzy schemat aktywnego połączenia i napisze SQL w jego dialekcie.

Dwie pułapki, na które najczęściej się trafia:

  • „Not signed in”, choć CLI działa w terminalu. DBeaver uruchomiony z ikony nie dziedziczy PATH z Twojej powłoki. Najszybsza diagnoza: uruchom DBeavera z tego samego terminala, w którym claude auth status --json zwraca loggedIn: true. Jeśli wtedy działa, przyczyną jest PATH — dodaj katalog CLI do PATH użytkownika w ustawieniach Windows, wyloguj się i zaloguj ponownie.
  • DBeaver w C:\Program Files\. Instalacja wtyczki wymaga zapisu do katalogu DBeavera, a zwykłe konto nie ma tam uprawnień. Dokumentacja opisuje trzy wyjścia.

6. Uczciwe ograniczenia

  • Tylko Windows. Linux i macOS nie są wspierane ani testowane: build powstaje dla jednego środowiska, a interaktywne logowanie do CLI otwiera okno konsoli tylko na Windows.
  • Potrzebujesz CLI. Bez zainstalowanego i zalogowanego claude albo codex wtyczka nie ma czym rozmawiać z modelem. To cena podejścia bez klucza: sekret zostaje u Ciebie, ale narzędzie do logowania też.
  • Twardy tryb tylko do odczytu na poziomie silnika obejmuje PostgreSQL i MySQL/MariaDB. Na pozostałych silnikach chroni Cię klasyfikator i bramka potwierdzenia, nie transakcja bazy — granice modelu bezpieczeństwa opisuje dokumentacja (EN).

Jeśli pracujesz też w SSMS

To samo podejście — logowanie przez własne konto, domyślnie tylko odczyt, do modelu schemat i SQL — opisałem dla SQL Server Management Studio w tekście Jak używać Claude lub ChatGPT w SSMS bez klucza API. Kryteria są te same, zmienia się tylko edytor.

Najważniejszy wniosek nie dotyczy jednak żadnej konkretnej wtyczki: zanim podłączysz AI do DBeavera, sprawdź, gdzie mieszka sekret, co trafia do modelu i co zatrzymuje zapis. Jeśli narzędzie nie odpowiada na te trzy pytania wprost, to jest odpowiedź.

SQL Sage tworzy LumaSoft (LUMA sp. z o.o.). Niezwiązany z Anthropic, OpenAI ani DBeaver.

← Wróć do bloga