Pregunta

Necesito ejecutar algunas consultas ad-hoc en varios cientos de servidores que no forman parte de un dominio. Cada servidor tiene una cuenta de usuario SQL de bajo privilegio que tiene acceso de solo lectura a algunas tablas de interés.

Mi idea era tener los nombres de estos servidores almacenados en una tabla y usar esa tabla para conducir un comando OpenDataSource o OpenRowset.

Los servidores se encuentran en diferentes dominios, dominios no controlados, grupos de trabajo, etc. Un gran desastre.

Por mi vida, no puedo encontrar un ejemplo de cómo configurar estos comandos para usar una combinación de cuenta/contraseña de SQL Server.

Nota: Esto sucede en una caja de arena, no está destinado al mundo real. Es simplemente una prueba de concepto, por lo que la seguridad no es una gran preocupación. Estos servidores están arrancados por un proceso que está simulando un crecimiento del mundo real de una red.

Para el registro, pude hacer que OpenRowset funcionara:

SELECT *
FROM OPENROWSET('SQLNCLI',
   'DRIVER={SQL Server};SERVER=MyServer;UID=MyUserID;PWD=MyCleverPassword',
   'select @@ServerName')         
¿Fue útil?

Solución

Para ejecutarlo con un inicio de sesión SQL, solo necesita especificar la identificación de usuario y la contraseña en la cadena de conexión (llamado "Cadena init" en Bol)

SELECT
    * FROM
OPENDATASOURCE (
   'SQLNCLI', -- or SQLNCLI
   'Data Source=OtherServer\InstanceName;Catalog=RemoteDB;User ID=SQLLogin;Password=Secret;').RemoteDB.dbo.SomeTable
Licenciado bajo: CC-BY-SA con atribución
No afiliado a dba.stackexchange
scroll top