Chcę sprawdzić, jaki typ sql działa na serwerze bazy danych, do którego mam dostęp. Mam tylko dostęp do interfejsu internetowego i listy tabel.
Poprzez interfejs mogę uruchamiać zapytania dotyczące tabel znajdujących się na liście.
Jak mogę uzyskać więcej informacji o serwerze i wersji, na której działa serwer. Nie mam pojęcia o adresie IP lub PORT, który działa serwer.
Chcę wiedzieć, czy serwerem jest MySQL, Mircosoft SQL Server, Oracle SQL, Postgre SQL lub inny serwer SQL.
Witryna, o której mówię, to ta: edytor SQL w3schools.com .
EDYCJA 2: chociaż dla niektórych polecenie select sqlite_version () działa dla mnie, nie działa. To jest zrzut ekranu odpowiedzi.
EDYCJA 3: W przeglądarce Chromium polecenie działa poprawnie. Jednak w przeglądarce Firefox polecenie nie działało.
Wspominam również, że korzystam z Linuksa.
Jak myślisz, co może być przyczyną różnych wyników w Firefoksie i Chrome?
źródło
Odpowiedzi:
Zakładam, że twój interfejs internetowy pozwala wydawać polecenia SQL. Jeśli tak, możesz użyć:
PostgreSQL
Jeśli korzystasz z bazy danych PostgreSQL , otrzymasz odpowiedź podobną do
MySQL
Jeśli korzystasz z bazy danych MySQL , odpowiedź wygląda następująco
Wyrocznia
Jeśli korzystasz z bazy danych Oracle , pojawi się komunikat o błędzie:
(ORA-xxxx mówi ci, że korzystasz z Oracle). Aby dowiedzieć się, która konkretna wersja, spróbuj:
Otrzymasz odpowiedź w rodzaju:
Microsoft SQL Server
Jeśli korzystasz z MS SQL Server , odpowiedź będzie również błędem i będzie wyglądać następująco:
W takim przypadku możesz spróbować:
W odpowiedzi otrzymasz coś w stylu:
SQLite
Jeśli korzystasz z bazy danych SQLite , podczas próby
SELECT version()
:W takim przypadku możesz spróbować:
Odpowiedź będzie wyglądać następująco:
źródło
SELECT sqlite_version()
a otrzymasz odpowiedź.Ten internetowy edytor SQL korzysta z internetowej bazy danych SQL , co oznacza, że SQL jest osadzony w przeglądarce. Łatwo jest rozpoznać, jeśli spojrzysz na ich kod źródłowy JS pod adresem http://www.w3schools.com/w3Database.js i porównasz wywołania API ze specyfikacją W3C Web SQL, na przykład jak otwierają bazę danych:
Więc nie ma serwera bazy danych, to naprawdę przeglądarka wykonuje SQL, z silnikiem SQL, którego przeglądarka zdecydowała się użyć (zakładając, że ma on możliwość uruchamiania SQL), co
sqlite
ma sens.(EDYCJA: nie do końca prawda, ponieważ zgodnie z odpowiedzią Martina Smitha kod przesyłania JS wraca do silnika MS-Jet po stronie serwera, gdy przeglądarka nie obsługuje Web SQL).
Zauważ, że W3C zdecydowało się porzucić koncepcję przeglądarki SQL w 2010 roku, teraz jest przestarzała.
źródło
Jak stwierdzono w innych odpowiedziach, zależy to od przeglądarki.
Jeśli Twoja przeglądarka nie ma natywnej obsługi Web SQL Database, kończy się przesyłanie z powrotem na serwer.
Używa Jet, jak widać po uruchomieniu
co oznacza, że zastrzeżone rozszerzenia dostępu, takie jak
TRANSFORM
praca, uzyskują dostęp do strony z przeglądarki Firefox (ale w Chrome nie powiedzie się)źródło
Ta odpowiedź została udzielona, zanim OP dodał odwołanie do w3schools.com
Jeśli możesz uruchomić zapytanie, zacznij od tego:
źródło
W konkretnym przypadku silnika SQL używanego przez stronę w W3Schools :
Przeglądarki Safari, Chrome i Opera
Jeśli używasz przeglądarki Safari (przetestowałem na Mac OS X 10.12), strona korzysta z SQLite, który wydaje się być wbudowany w samą przeglądarkę. Po naciśnięciu przycisku „Uruchom SQL” nie korzysta on z żadnych zewnętrznych zasobów. Dalsza inżynieria wsteczna ujawnia, że strona inicjuje bazę danych za pomocą następującego kodu JavaScript:
window.openDatabase
oznacza, że kod korzysta z internetowej bazy danych SQL . Zostało to zdefiniowane przez W3C kilka lat temu i zostało zastosowane w praktyce przez Operę, Safari i Chrome (AFAIK), ale nie przez FireFox (lub Explorer). Wygląda na to, że wszystkie trzy przeglądarki wdrożyły „Web SQL Database”, osadzając w sobie różne wersje SQLite.W tym momencie strona W3C twierdzi:
Testowałem przeglądarkę Chrome (wersja 56.0.2924.87, na Windows 10) i wydaje się, że używa SQLite 3.10.2. Opera (wersja 12.15, na Windows 10) używa SQLite 3.7.9.
Opera jest wystarczająco klarowna w swoim „około”:
I Safari Client-Side magazynowe Offline Applications Programming Guide wspomina również, że
Nie patrzyłem na Chrome ... ale moje przypuszczenia są jasne.
Przeglądarki FireFox, Edge i Internet Explore
Jeśli używasz przeglądarki FireFox (testowałem na Mac OS X 10.12); ta sama strona W3School zachowuje się w zupełnie inny sposób. Nie wykonuje zapytań w przeglądarce , ale wysyła żądania do swojego serwera . Po stronie serwera, myślę, że faktycznie używa bazy danych MS Access . Jednym ze sposobów sprawdzenia tego jest sprawdzenie (standard)
information_schema
.Jeśli wydasz następujące zapytanie (które w bazie danych zgodnej ze standardami dałoby listę tabel dostępną dla użytkownika):
Otrzymujesz następującą (zbyt wymowną) odpowiedź na błąd :
Jeśli oprogramowanie szuka pliku .MDB, oznacza to, że używa aparatu bazy danych Microsoft Jet (lub czegoś równoważnego) po stronie serwera i korzysta z plików w formacie Access .MDB , które odpowiadają wersjom Access do i w tym 2003. (Access 2007 i nowsze wersje domyślnie używają plików w formacie .ACCDB).
Microsoft Internet Explorer 11 zachowuje się w ten sam sposób (w systemie Windows 10); podobnie jak Edge (w systemie Windows 10).
źródło