SQL Server - Duda OpenRowSet

   
Vista:

Duda OpenRowSet

Publicado por Angel (11 intervenciones) el 22/09/2014 20:17:04
Que tal, estoy buscando la forma de hacer un insert desde sql server hasta mysql sin tener que vincular el servidor, no estoy seguro si con openrowset o con opendatasource se pueda lograr esto.

Basicamente lo que quiero es esto:

opendatasource(param1, stringconnection, query)

en el query es algo asi: insert into tmp_ventas select * from ventas

tmp_ventas es una tabla en mysql
ventas es una tabla en sql server

y al ejecutarlo me sale error en la sintaxis: openrowset, me imagino que es el acomodo, tal vez no se pueda poner openrowset solo, si no que tenga que ir despues del FROM.

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias

Duda OpenRowSet

Publicado por Isaias (3180 intervenciones) el 22/09/2014 22:11:08
FORZOSAMENTE debes hacer un LINKED SERVER, de otra forma, IMPOSIBLE !!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda OpenRowSet

Publicado por Angel (11 intervenciones) el 22/09/2014 23:01:26
Entonces, en que casos se usa openrowset y opendatasource?? La diferencia es esa no? Que si no se hacen consultas seguidas a la base de datos no lo vinculas el servidor con estas. O me equivoco?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias

Duda OpenRowSet

Publicado por Isaias (3180 intervenciones) el 22/09/2014 23:35:38
Esto dice el libro:

OPENROWSET

Es un método alternativo para tener acceso a las tablas de un servidor vinculado (Linked server)

OPENDATASOURCE

Proporciona información de conexión ad hoc como parte de un nombre de objeto de cuatro partes sin utilizar un nombre de servidor vinculado

Tal vez esta ultima, sea la que no necesita un LINKED SERVER, solo que debes declarar una conexion ODBC, que para el caso, seria lo mismo.

SELECT * FROM OPENDATASOURCE ( Provider_Name, Init_String ).TableName
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda OpenRowSet

Publicado por Angel (11 intervenciones) el 23/09/2014 00:30:58
Es que por cuestiones de seguridad no deseamos vincularlo.

El query lo quiero hacer de nuestra base de datos en nuestro server de sql, a uno de mysql de un proveedor externo es el detalle, por ese motivo no queremos vincularlo.

Entonces se podria hacer por el OPENDATASOURCE??

Estoy intentando, me ayudarias con la sintaxis?

insert into OPENDATASOURCE('MSDASQL','Driver={MySQL ODBC 5.2 ANSI Driver};Server=xxxx;Database=xxxx;User=xxxx;Password=xxxx;')
select * from dbo.Ventas

Esperaba poner un tmp_ventas que es la tabla de mysql pero no lo reconoce objeto invalido.

Solo que no logro completa lo demas, requiero hacerlo de sql server a mysql.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias

Duda OpenRowSet

Publicado por Isaias (3180 intervenciones) el 23/09/2014 03:04:31
Pero si hablamos sobre SEGURIDADA, el concepto LINKED SERVER es muy seguro, ¿Cuál es tu temor?, nadie podrá entrar a tu MYSQL externo, de no tener el USUARIO y PASSWORD, no porque crees un linked server, significa que ya cualquiera puede ingresar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda OpenRowSet

Publicado por Angel (11 intervenciones) el 23/09/2014 17:24:21
Mas bien lo veo del lado contrario, de la relación que sea creara entre el externo del proveedor y el nuestro de la empresa, ya que hay información importante.

Por eso estoy obtando por poder ejecutar un query sin necesidad de crear un link server.

Entonces, se podra?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias

Duda OpenRowSet

Publicado por Isaias (3180 intervenciones) el 23/09/2014 17:47:34
Angel

El LINKED SERVER se crea solo donde, se crea, valga la "rebusnancia", ejemplo:


Yo en Monterrey, creo un LINKED SERVER para acceder a un servidor en Querétaro, hasta aquí, todo bien.

La gente de Querétaro, debe OTORGARME los permisos de acceso.

Si la gente de Querétaro, quisiera acceder mi servidor, tendría que crear su propio LINKED SERVER y deberían pedirme a mi, el usuario y password que les diera acceso.

En pocas palabras, el LINKED SERVER, no es bidireccional. ¿De acuerdo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda OpenRowSet

Publicado por Angel (11 intervenciones) el 23/09/2014 19:28:57
Ohhh, ok, ya entendi.

Y en caso de un hackeo, como es unidireccional seria si hackean el de la empresa podrian hackear el otro... pero no viceversa,,,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias

Duda OpenRowSet

Publicado por Isaias (3180 intervenciones) el 23/09/2014 22:54:08
Correcto, aunque si hablamos de Hackeo, si de algo presume Microsoft, es que su motor de base de datos SQL SERVER, es muy seguro.

Con un simple LINKED SERVER, podríamos pensar que se intentaría INYECCION DE CODIGO, pero para eso, hay muchas formas de evitarlo.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar