¿Alguien puede darme un código fuente de muestra que muestre cómo conectarse a una base de datos SQL Server 2005 desde JavaScript localmente? Estoy aprendiendo programación web en mi escritorio.
¿O necesito usar algún otro lenguaje de script? Sugiera algunas alternativas si las tiene, pero ahora estoy tratando de hacerlo con JavaScript. Mi SQL Server está instalado localmente en mi escritorio: SQL Server Management Studio 2005 y el navegador IE7.
javascript
sql-server
database-connection
Disfruta codificando
fuente
fuente
Respuestas:
No debe usar javascript del cliente para acceder a las bases de datos por varias razones (malas prácticas, problemas de seguridad, etc.), pero si realmente desea hacerlo, aquí hay un ejemplo:
Una mejor manera de conectarse a un servidor sql sería utilizar algún lenguaje del lado del servidor como PHP, Java, .NET, entre otros. El javascript del cliente debe usarse solo para las interfaces.
Y hay rumores de una antigua leyenda sobre la existencia del servidor javascript, pero esta es otra historia. ;)
fuente
Esto sería realmente malo porque compartir su cadena de conexión abre su sitio web a tantas vulnerabilidades que no puede simplemente parchear, tiene que usar un método diferente si desea que sea seguro. De lo contrario, se está abriendo a una gran audiencia para aprovechar su sitio.
fuente
Un código de trabajo perfecto.
fuente
servicios web
SQL 2005+ es compatible con los servicios web nativos que casi podría usar, aunque no lo sugeriría, debido a los riesgos de seguridad que puede enfrentar. ¿Por qué dije casi ? Bueno, Javascript no es SOAP nativo, por lo que sería un poco más complicado hacerlo. Tendría que enviar y recibir SOAP vía
XmlHttpRequest
. Consulte google para clientes Javascript SOAP.fuente
Al jugar con JavaScript en una HTA no tuve suerte con una
driver={SQL Server};...
cadena de conexión, pero un DSN con nombre estaba bien:configuré TestDSN y probó OK, y luego
var strConn= "DSN=TestDSN";
funcionó, así que seguí experimentando para mis pruebas internas y para aprender.Nuestro servidor tiene varias instancias ejecutándose, por ejemplo, server1 \ dev y server1 \ Test, lo que hizo que las cosas fueran un poco más complicadas, ya que logré perder el tiempo olvidando escapar del
\
as\\
:)Después de algunos callejones sin salida
server=server1;instanceName=dev
en las cadenas de conexión, finalmente obtuve esto uno para trabajar:var strConn= "Provider=SQLOLEDB;Data Source=server1\\dev;Trusted_Connection=Yes;Initial Catalog=MyDatabase;"
Utilizando las credenciales de Windows en lugar de proporcionar un usuario / pwd, descubrí que una diversión interesante era descubrir las sutilezas de
Integrated Security = true
vIntegrated Security = SSPI
vTrusted_Connection=Yes
: consulte Diferencia entre seguridad integrada = verdadera y seguridad integrada = SSPITenga en cuenta que RecordCount volverá como
-1
si estuviera usando el tipo predeterminado adOpenForwardOnly . Si está trabajando con pequeños conjuntos de resultados y / o no le importa todo el conjunto de la memoria a la vez, users.Open(strQuery, objConnection, 3);
(3 = adOpenStatic) y esto le da un valor válidors.RecordCount
fuente
Como se indicó anteriormente, no debe hacerse usando Javascript del lado del cliente, pero hay un marco para implementar lo que desea de manera más segura.
Nodejs es un marco que le permite codificar las conexiones del servidor en JavaScript, así que eche un vistazo a Nodejs y probablemente aprenderá un poco más sobre cómo comunicarse con las bases de datos y obtener los datos que necesita.
fuente
(lo siento, esta fue una respuesta más genérica sobre los backends de SQL; no había leído la respuesta sobre la función WebServices de SQL Server 2005. Aunque, esta característica aún se ejecuta a través de HTTP en lugar de hacerlo directamente a través de sockets, por lo que esencialmente han construido un mini servidor web en el servidor de la base de datos, por lo que esta respuesta es otra ruta que podría tomar).
También puedes conectarte directamente usando sockets (google "javascript sockets") y directamente en este punto me refiero a usar un archivo Flash para este propósito, aunque HTML5 tiene Web Sockets como parte de la especificación que creo te permite hacer lo mismo.
Algunas personas citan problemas de seguridad, pero si diseñaste correctamente los permisos de tu base de datos, teóricamente deberías poder acceder a la base de datos desde cualquier interfaz, incluido OSQL, y no tener una violación de seguridad. El problema de seguridad, entonces, sería si no te conectaras a través de SSL.
Finalmente, sin embargo, estoy bastante seguro de que todo esto es teórico porque no creo que existan bibliotecas de JavaScript para manejar los protocolos de comunicaciones para SSL o SQL Server, por lo que, a menos que esté dispuesto a resolver estas cosas usted mismo, sería es mejor seguir la ruta de tener un servidor web y un lenguaje de script del lado del servidor entre el navegador y la base de datos.
fuente
No creo que pueda conectarse al servidor SQL desde los javascripts del lado del cliente. Debe aprender un poco del lenguaje del lado del servidor para crear aplicaciones web que puedan interactuar con su base de datos y usar JavaScript solo para mejorar la interacción de su interfaz de usuario.
puede elegir cualquier lenguaje de script del lado del servidor según su preferencia de idioma:
fuente