Je veux vérifier à quel type de sql s'exécute un serveur Datasase auquel je peux accéder. Je n'ai accès qu'à une interface web et à une liste de tableaux.
Grâce à l'interface, je peux exécuter des requêtes sur les tables présentes dans une liste.
Comment puis-je obtenir plus d'informations sur le serveur et la version qu'il exécute? Je n'ai aucune idée de l'IP ou du PORT que le serveur exécute.
Je veux savoir si le serveur est MySQL, Mircosoft SQL Server, Oracle SQL, Postgre SQL ou un autre serveur SQL.
Le site Web dont je parle est celui-ci: l' éditeur SQL de w3schools.com .
EDIT 2: bien que pour certains, la commande select sqlite_version () fonctionne pour moi, cela ne fonctionne pas. Ceci est la capture d'écran de la réponse.
EDIT 3: Sur le navigateur Chromium, la commande fonctionne correctement. Cependant, sur le navigateur Firefox, la commande n'a pas fonctionné.
Je mentionne également que j'utilise Linux.
Selon vous, quelle pourrait être la raison pour laquelle sur Firefox et sur Chrome j'obtiens des résultats différents?
la source
Réponses:
Je suppose que votre interface Web vous permet d'émettre des commandes SQL. Si oui, vous pouvez utiliser:
PostgreSQL
Si vous êtes sur une base de données PostgreSQL , vous obtenez une réponse similaire à
MySQL
Si vous êtes sur une base de données MySQL , la réponse ressemble à
Oracle
Si vous êtes sur une base de données Oracle , vous obtiendrez un message d'erreur:
(L'ORA-xxxx vous indique que vous êtes sur Oracle). Pour savoir quelle version spécifique, essayez:
Vous obtiendrez une réponse comme:
Microsoft SQL Server
Si vous utilisez MS SQL Server , la réponse sera également une erreur et ressemblera à:
Dans ce cas, vous pouvez essayer:
Et vous obtiendrez, en réponse, quelque chose ressemblant à:
SQLite
Si vous êtes sur une base de données SQLite , vous obtiendrez un message d'erreur lorsque vous essayez
SELECT version()
:Dans ce cas, vous pouvez essayer:
Et la réponse ressemblera à:
la source
SELECT sqlite_version()
et vous aurez votre réponse.Cet éditeur SQL en ligne utilise la base de données Web SQL , ce qui signifie que SQL est intégré dans le navigateur. Il est facile de reconnaître si vous regardez leur code source JS sur http://www.w3schools.com/w3Database.js et comparez les appels d'API à la spécification W3C de Web SQL, par exemple comment ils ouvrent la base de données:
Il n'y a donc pas de serveur de base de données, c'est vraiment le navigateur qui exécute le SQL, avec le moteur SQL que votre navigateur a choisi d'utiliser (en supposant qu'il a la capacité SQL pour commencer), pour lequel
sqlite
cela a beaucoup de sens.(EDIT: pas strictement vrai car selon la réponse de Martin Smith , le code de soumission JS retombe sur un moteur MS-Jet côté serveur lorsque le navigateur ne prend pas en charge Web SQL).
A noter que le W3C a décidé d'abandonner le concept SQL-in-the browser en 2010, il est désormais obsolète.
la source
Comme indiqué dans les autres réponses, cela dépend de votre navigateur.
Si votre navigateur n'a pas de support natif pour Web SQL Database, il finit par se soumettre de nouveau au serveur.
Cela utilise Jet comme on peut le voir en exécutant
ce qui signifie des extensions d'accès propriétaires comme le
TRANSFORM
travail lors de l'accès à la page à partir de Firefox (mais cela échouera dans Chrome)la source
Cette réponse a été donnée avant que le PO ajoute une référence à w3schools.com
Si vous pouvez exécuter une requête, commencez par ceci:
la source
Pour le cas spécifique du moteur SQL utilisé par la page de W3Schools :
Navigateurs Safari, Chrome et Opera
Si vous utilisez le navigateur Safari (j'ai testé sur Mac OS X 10.12), la page utilise SQLite, qui semble être intégré au navigateur lui-même. Lorsque vous appuyez sur le bouton "Exécuter SQL", il n'utilise aucune ressource externe. Une ingénierie inverse plus poussée révèle que la page initialise la base de données au moyen du code JavaScript suivant:
window.openDatabase
signifie que le code utilise une base de données Web SQL . Cela a été défini par le W3C il y a quelques années et mis en pratique par Opera, Safari et Chrome (AFAIK), mais pas par FireFox (ou Explorer). Les trois navigateurs semblent avoir implémenté la "base de données Web SQL" en incorporant différentes versions de SQLite en eux-mêmes.À ce stade, la page W3C affirme:
J'ai testé un navigateur Chrome (version 56.0.2924.87, sur Windows 10), et il semble utiliser SQLite 3.10.2. Opera (version 12.15, sur Windows 10), utilise SQLite 3.7.9.
Opera est assez clair dans leur "à propos":
Et le Guide de programmation du stockage côté client et des applications hors ligne de Safari mentionne également que
Je n'ai pas regardé dans Chrome ... mais ma supposition est claire.
Navigateurs FireFox, Edge et Internet Explore
Si vous utilisez le navigateur FireFox (j'ai testé sur Mac OS X 10.12); la même page W3School se comporte de manière radicalement différente. Il n'exécute pas les requêtes sur le navigateur , mais envoie des requêtes à leur serveur . Côté serveur, je pense qu'il utilise en fait une base de données MS Access . Une façon de le vérifier est de vérifier le (standard)
information_schema
.Si vous émettez la requête suivante (qui, dans une base de données conforme aux normes, donnerait la liste des tables accessibles à l'utilisateur):
Vous obtenez la réponse d'erreur suivante (trop révélatrice) :
Si le logiciel recherche un fichier .MDB, cela signifie qu'ils utilisent le moteur de base de données Microsoft Jet (ou quelque chose d'équivalent) côté serveur et qu'ils utilisent des fichiers au format Access .MDB , qui correspondent aux versions d'Access jusqu'à et y compris 2003. (Access 2007 et versions ultérieures utilisent, par défaut, des fichiers au format .ACCDB).
Microsoft Internet Explorer 11 se comporte de la même manière (sous Windows 10); ainsi que Edge (sur Windows 10).
la source