2009-02-24 11 views
5

Aparece este error cuando trato de conectarme a un servidor SQL remoto usando esta cadena de conexión.Conexión a un servidor mssql desde una máquina remota da inicio de sesión fallido para el usuario ''

Error: la cadena de

ODBC error: 28000118452[Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user ''. The user is not associated with a trusted SQL Server connection.

conexion:

"DRIVER={SQL Server};SERVER=testserver,1433;Trusted_Connection={Yes};"

Nota esta misma cadena de conexión funciona bien si puedo especificar el equipo local.

Mi pregunta: ¿Por qué el servidor SQL remoto piensa que mi nombre de usuario está en blanco ''?

He hecho un inicio de sesión válido primero utilizando la API WNetAddConnection Win32 para la máquina remota.

Editar: Tengo el mismo error al conectarme desde Management Studio. Pero pensé que mi programa tendría mayores posibilidades de funcionar ya que primero establecí una conexión con la máquina remota.

Edit2: Nota Realmente necesito una solución que use la autenticación de Windows. Ya lo tengo trabajando con autenticación SQL.

+0

¿Está utilizando la autenticación integrada de Windows o el usuario sql? no lo veo en la cadena de conexión. –

+0

autenticación de Windows, puede usar Trusted_connection para eso. –

+0

Es lo mismo si uso Integrated Security = SSPI –

Respuesta

1

Pensamientos:

1.) son las dos máquinas en el mismo dominio? Probablemente sea así debido a sus referencias para establecer una conexión con WNet * ...

De lo contrario, Integrated Security le dará problemas.

Editar: Veo que ambas máquinas no están en el mismo dominio. Para utilizar la seguridad integrada, el dominio que el servidor SQL Server está en debe confiar en el dominio de la máquina local está en

Otra edición:. Corroboration for the above statement.

De enlace: Este mensaje de error puede aparecer si el usuario iniciar sesión es una cuenta de dominio de un dominio diferente, no confiable del dominio del servidor SQL. El próximo paso para esto es mover la máquina cliente al mismo dominio que SQL Server y configurarla para usar una cuenta de dominio, o para establecer una confianza mutua entre los dominios. Establecer una confianza mutua es un procedimiento complicado y debe hacerse con gran cuidado y debido a consideraciones de seguridad.

2.) Verifique para asegurarse de que los SPN estén configurados correctamente en el servidor.

Look HERE de una mayor orientación, pero básicamente lo hace:

-L setspn ServerName

uno de los SPN tiene que quedar así:

MSSQLSvc/ServerName: 1433

3 .) Una más Editar: Si ninguna máquina está en un dominio, todo lo que necesita hacer es tener una ID de usuario/contraseña local que coincida en ambas máquinas.

Por ejemplo, un usuario llamado brian en ambas máquinas, y las contraseñas de ambos usuarios son 'letmein'.

+0

1) No están en un dominio y tienen diff u/p. wnet api funciona bien incluso cuando trabaja con 2 máquinas que no están en un dominio. –

+0

SQL Server no usa la API WNet * embargo. – Moose

+0

Hola alces; ¿Podría darme una pista sobre dónde empezar a buscar para establecer esta confianza entre las computadoras? –

-1

Creo que el error podría deberse a que la sección UserId no está completa (lo que es correcto para Windows Auth).

Pruebe una cadena de conexión como:

Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;

Otra alternativa que se supone que es idéntica:

Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;

Cuestiones relacionadas