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ł:
- 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.
- Za co płacisz? Klucz rozlicza się za tokeny — osobno od subskrypcji Claude czy ChatGPT, którą prawdopodobnie już masz.
- 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:
SELECTmoż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 tnie powinno przejść jako „odczyt”, bo zaczyna się odSELECT.
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
claudealbocodex, 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
SELECTsię 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 onalbo 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:
- Zainstaluj wtyczkę w DBeaverze: Help → Install New Software… → Add… i adres update site
https://sqlsagedbeaver.lumasoft.org/updatesite, potem restart. - Zaloguj się do CLI raz: uruchom
claudei użyj/loginalbo wykonajcodex login. Jeśli już używasz któregoś w terminalu, ten krok masz za sobą. - Otwórz panel czatu skrótem Ctrl+Alt+A. Pasek statusu pokazuje, w którego dostawcę jesteś zalogowany.
- 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 --jsonzwracaloggedIn: 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
claudealbocodexwtyczka 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.