Quiero verificar qué tipo de sql se está ejecutando en un servidor Datasase al que puedo acceder. Solo tengo acceso a una interfaz web y una lista de tablas.
A través de la interfaz puedo ejecutar consultas en las tablas que están presentes en una lista.
¿Cómo puedo obtener más información sobre el servidor y la versión que el servidor está ejecutando? No tengo idea sobre la IP o el PUERTO que está ejecutando el servidor.
Quiero saber si el servidor es MySQL, Mircosoft SQL Server, Oracle SQL, Postgre SQL u otro servidor sql.
El sitio web del que estoy hablando es este: el editor SQL w3schools.com .
EDIT 2: aunque para algunos el comando select sqlite_version () funciona para mí, no funciona. Esta es la captura de pantalla de la respuesta.
EDITAR 3: en Chromium Browser, el comando funciona correctamente. Sin embargo, en el navegador Firefox el comando no funcionó.
También menciono que estoy ejecutando Linux.
¿Cuál crees que podría ser la razón por la cual en Firefox y en Chrome obtengo resultados diferentes?
fuente
Respuestas:
Supongo que su interfaz web le permite emitir comandos SQL. Si es así, puede usar:
PostgreSQL
Si está en una base de datos PostgreSQL , obtendrá una respuesta similar a
MySQL
Si está en una base de datos MySQL , la respuesta se ve así
Oráculo
Si está en una base de datos Oracle , recibirá un mensaje de error:
(El ORA-xxxx te dice que estás en Oracle). Para averiguar qué versión específica, intente:
Recibirá una respuesta como:
Microsoft SQL Server
Si está en MS SQL Server , la respuesta también será un error y se verá así:
En ese caso, puedes probar:
Y obtendrá, como respuesta, algo parecido a:
SQLite
Si está en una base de datos SQLite , recibirá un mensaje de error cuando intente
SELECT version()
:En ese caso, puedes probar:
Y la respuesta se verá así:
fuente
SELECT sqlite_version()
y tendrá su respuesta.Este editor de SQL en línea utiliza la base de datos Web SQL , lo que significa SQL incorporado en el navegador. Es fácil de reconocer si observa su código fuente JS en http://www.w3schools.com/w3Database.js y compara las llamadas API con la especificación W3C de Web SQL, por ejemplo, cómo abren la base de datos:
Entonces, no hay un servidor de base de datos, es realmente el navegador el que ejecuta el SQL, con el motor SQL que su navegador ha elegido usar (suponiendo que tenga la capacidad de SQL para comenzar), para lo cual
sqlite
tiene mucho sentido.(EDITAR: no es estrictamente cierto porque de acuerdo con la respuesta de Martin Smith , el código de envío JS recurre a un motor MS-Jet del lado del servidor cuando el navegador no admite Web SQL).
Tenga en cuenta que el W3C ha decidido abandonar el concepto de navegador SQL-in-the en 2010, ahora está obsoleto.
fuente
Como se indica en las otras respuestas, depende de su navegador.
Si su navegador no tiene soporte nativo para la base de datos Web SQL, entonces termina enviándose nuevamente al servidor.
Esto usa Jet como se puede ver al ejecutar
lo que significa extensiones de acceso patentadas como el
TRANSFORM
trabajo al acceder a la página desde Firefox (pero esto fallará en Chrome)fuente
Esta respuesta se dio antes de que el OP agregara una referencia a w3schools.com
Si puede ejecutar una consulta, comience con esto:
fuente
Para el caso específico del motor SQL utilizado por la página en W3Schools :
Navegadores Safari, Chrome y Opera
Si usa el navegador Safari (lo probé en Mac OS X 10.12), la página está usando SQLite, que parece estar integrado en el navegador. Cuando presiona el botón "Ejecutar SQL", no utiliza ningún recurso externo. La ingeniería inversa adicional revela que la página está inicializando la base de datos mediante el siguiente código JavaScript:
window.openDatabase
significa que el código está usando una base de datos Web SQL . Esto fue definido por el W3C hace unos años, y fue puesto en práctica por Opera, Safari y Chrome (AFAIK), pero no por FireFox (o Explorer). Los tres navegadores parecen haber implementado la "Base de datos Web SQL" al incorporar diferentes versiones de SQLite dentro de ellos mismos.En este punto, la página del W3C afirma:
Probé un navegador Chrome (versión 56.0.2924.87, en Windows 10), y parece que usa SQLite 3.10.2. Opera (versión 12.15, en Windows 10), utiliza SQLite 3.7.9.
Opera es lo suficientemente claro en su "acerca de":
Y la Guía de programación de aplicaciones fuera de línea y almacenamiento del lado del cliente de Safari también menciona que
No busqué en Chrome ... pero mi suposición es clara.
Firefox, Edge e Internet exploran los navegadores
Si usa el navegador Firefox (lo probé en Mac OS X 10.12); la misma página de W3School se comporta de una manera radicalmente diferente. No realiza las consultas en el navegador , pero envía solicitudes a su servidor . En el lado del servidor, creo que en realidad está usando una base de datos de MS Access . Una forma de verificarlo es verificando el (estándar)
information_schema
.Si emite la siguiente consulta (que, en una base de datos compatible con los estándares, daría la lista de tablas accesibles para el usuario):
Obtiene la siguiente respuesta de error (demasiado reveladora) :
Si el software está buscando un archivo .MDB, eso significa que están usando el motor de base de datos Microsoft Jet (o algo equivalente) en el lado del servidor, y están usando archivos de formato Access .MDB , que corresponden a versiones de Access hasta y incluido 2003. (Access 2007 y versiones posteriores usan, por defecto, archivos de formato .ACCDB).
Microsoft Internet Explorer 11 se comporta de la misma manera (en Windows 10); y también Edge (en Windows 10).
fuente