none
Hacer una consulta que haga una conexion con otro servidor. RRS feed

  • Pregunta

  • Buenos días. 

    Tengo que hacer una consulta en el servidor AAAA para obtener los datos que hay en el servidor BBBB como puede hacer una consulta si para acceder a cada servidor utilizo la identificación de usuario de windows y son servidores que están en diferentes ips.

    Lo que quiero es acceder a BBBB a su base de datos db_B en la tabla llamada TB con los campos ID_TB y Nombre_TB

    select ID_TB, Nombre_TB from db_B.TB;

    Mientras que en el servidor AAAA tengo la base de datos db_A en la tabla TA con los campos ID_TA y Nombre_TA

    Y quiero mostrar solo los Nombre_TA donde el ID_TA sea igual al ID_TB obtenido de consultar en la conexión con BBBB

    select Nombre_TA from db_A.TA where ID_TA = (select ID_TB from BBBB.db_B.TB)

    He utilizado sp_addlinkedserver para añadir al servidor AAAA la conexion BBBB

    exec sp_addlinkedserver'BBBB'

    Pero cuando hago una consulta como está:

    select * from [BBBB].db_B.TB

    Me da el error este: Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.

    ¿Cómo lo soluciono?



    • Editado Dudando MH jueves, 30 de abril de 2020 14:50 Mejor detalle.
    jueves, 30 de abril de 2020 14:48

Todas las respuestas

  • Hola, mira, yo tengo una sentencia que hace un Insert desde un servidor SQL Server a PostGreSQL.

    INSERT INTO OPENROWSET('MSDASQL','Driver=PostgreSQL ANSI;uid=vflo;Server=10.10.10.10;port=5487;database=vflo;pwd=pass1287',
    	'SELECT  "Patente", "Alias", "Color", "Marca", "Modelo", "Año", numero_motor, numero_chasis, numero_vin, "Observaciones","Gps_Codigo", "Gps_Imei",
    	 "Gps_Marca","Gps_Modelo","Gps_Año", "numero_Sim", "compañia", "Habilitado", fecha_activacion, tipo_vehiculo FROM gps_vehiculos where "Patente"= ''1'' ')
    SELECT patente, '0000' as 'Alias',color,marca,modelo,año,'' as 'numero_motor','' as 'numero_chasis','' as 'numero_vin', observaciones,cod,celular_modelo,gps_marca,
    gps_modelo,gps_año,celular_codigo,celular_marca,1 as 'Habilitado','' as 'fecha_activacion','' as 'tipo_vehiculo'
    FROM gps_vehiculos
    where id_vehiculo in (
    4035,4784,3560,2715,4066,3883,3301,4164,
    4069,3643,3644,4718,4175,4891,4783,4781,4779,
    4896,4838,4803,4780,4798,4797,4901,4904,4902,4903)

    como verás, en el OPENROWSET van los datos de servidor y las credenciales de acceso.

    OpenRowSet

    Saludos.

    jueves, 30 de abril de 2020 15:09
  • Buenos días.

    Por lo que me indicas en tu consulta se especifica directamente un usuario y un paswword y lo que estaba buscando era hacer una consulta sobre un servidor vinculado utilizando la autentificación de windows, que es donde me reside el problema.

    ¿Entonces es posible o no hacer una consulta utilizando la autentificación de windows?

    Me lo anoto está forma, pero actualmente para lo que estoy haciendo no lo puedo aplicar. Porque no puedo poner un usuario y una contraseña


    miércoles, 6 de mayo de 2020 14:13
  • Hola Dudando MH:

    Si es posible. 

    Revisa la documentación de sp_addLinkedServer de los parámetros @useSelf, @localLogin, @rmtUser, @rmtPassword

    Sp_addLinkedServer

    Desde el Management Studio, es posible que se vea más clara la posibilidad.

    jueves, 7 de mayo de 2020 5:04