SQL Server 2008: el inicio de sesión es de un dominio no confiable y no se puede usar con la autenticación de Windows

8

La pregunta aquí es diferente de 1 y 2

Cuando intento conectarme a una base de datos de SQL Server que está en otro sistema en la red, ambos están en el grupo de trabajo, cuando intento conectarme a una instancia de SQL Server 2008 usando SQL Server Management Studio con autenticación de Windows, me conecto.

Pero cuando intento conectarme desde mi aplicación, aparece el siguiente error

(Error de inicio de sesión. El inicio de sesión es de un dominio que no es de confianza y no se puede usar con la autenticación de Windows.) Native = 18452).

Si SQL Server Management Studio puede conectarse, ¿qué se requeriría para que mi aplicación se conecte?

Comunidad
fuente
Funcionó después de usar la misma cuenta que en el servidor mssql.

Respuestas:

4

Dado que se está ejecutando en un grupo de trabajo, la única autenticación posible es aquella que utiliza 'cuentas NT duplicadas' , lo que significa que el proceso que intenta autenticarse debe ejecutarse bajo una identidad que se 'refleja' en el host que autentica el proceso. Las cuentas 'duplicadas' son cuentas locales distintas con nombre y contraseña idénticos en ambos hosts que realizan la autenticación.

Por lo tanto, debe seguir que se está ejecutando SSMS de una cuenta que se refleja en el host de SQL Server (por ejemplo. <computername>\Administrator, Lo que se refleja en la <sqlhost>\Administratory tiene la misma contraseña). Tenga en cuenta que UAC no tiene nada que hacer aquí (es decir running as administrator, no ayudará).

Es probable que su aplicación se ejecute con una cuenta local diferente (¿quizás un apéndice IIS predeterminado?) Y la cuenta con la que se ejecuta la aplicación no se refleja en el host de SQL Server.

Su mejor solución es deshacerse de la red improvisada e implementar un AD (dominio) adecuado. Como provisional, asegúrese de ejecutar su aplicación en una cuenta que se refleje en la máquina host de SQL Server.

Remus Rusanu
fuente
Sí, la autenticación debe reflejarse. Mi aplicación, que es un servicio, se ejecutaba en una cuenta de Windows diferente (x) que SQL Server Management Studio. ¡Esta cuenta de Windows (x) también está presente en el otro sistema, pero ambos tenían contraseñas diferentes! Hice la misma contraseña en ambos sistemas y funcionó. Muchas gracias !!
5

Si está utilizando Windows 7, es posible que deba "ejecutarlo como administrador". Esto permitirá que la aplicación reutilice sus credenciales de Windows y las pase al Servidor SQL. De lo contrario, pasará las credenciales de invitado al SQL Server.

tgolisch
fuente
3
Improbable. UAC solo influye en las interacciones locales. No afecta la autenticación con un host remoto.
Remus Rusanu