He creado un servicio web que está guardando algunos datos en db. Pero recibo este error:
No se puede abrir la "prueba" de la base de datos solicitada por el inicio de sesión. El inicio de sesión falló. Error de inicio de sesión para el usuario 'xyz \ ASPNET'.
Mi cadena de conexión es
Data Source=.\SQLExpress;Initial Catalog=IFItest;Integrated Security=True
c#
asp.net
sql-server
iis
web-services
coure2011
fuente
fuente
Respuestas:
Bueno, el error es bastante claro, ¿no? Está intentando conectarse a su servidor SQL con el usuario "xyz / ASPNET"; esa es la cuenta con la que se ejecuta su aplicación ASP.NET.
Esta cuenta no puede conectarse a SQL Server; cree un inicio de sesión en SQL Server para esa cuenta o, luego, especifique otra cuenta válida de SQL Server en su cadena de conexión.
¿Puede mostrarnos su cadena de conexión (actualizando su pregunta original)?
ACTUALIZACIÓN: Ok, estás usando la autenticación integrada de Windows -> necesitas crear un inicio de sesión de SQL Server para "xyz \ ASPNET" en tu SQL Server - o cambiar tu cadena de conexión a algo como:
Si tiene un usuario "xyz" con una contraseña de "top $ secret" en su base de datos.
fuente
Yo optaría por la segunda opción: el mensaje de error implica que la base de datos predeterminada no está allí o no tiene derechos en ella, en lugar de no estar configurada como inicio de sesión.
Para probar si está configurado como inicio de sesión
Si es NULL
Si no es NULO
Si es NULL
fuente
Tuve este problema y lo que me resolvió fue:
fuente
La mejor solución para el problema de inicio de sesión es crear un usuario de inicio de sesión en sqlServer. Estos son los pasos para crear un inicio de sesión de SQL Server que use la autenticación de Windows (SQL Server Management Studio):
Por ejemplo, si el nombre de usuario es
xyz\ASPNET
, ingrese este nombre en el cuadro Nombre de inicio de sesión.Además, debe cambiar la asignación de usuario para permitir el acceso a la base de datos a la que desea acceder.
fuente
La mayoría de las veces, no es un problema de inicio de sesión, sino un problema con la creación de la base de datos. Entonces, si hay un error al crear su base de datos, no se creará en primer lugar. En cuyo caso, si intentaba iniciar sesión, independientemente del usuario, el inicio de sesión fallaría. Esto suele ocurrir debido a una mala interpretación lógica del contexto de la base de datos.
Visite el sitio en un navegador y REALMENTE lea esos registros de errores, esto puede ayudarlo a detectar el problema con su código (generalmente problemas lógicos conflictivos con el modelo).
En mi caso, el código se compiló bien, el mismo problema de inicio de sesión, mientras todavía estaba descargando Management Studio, revisé el registro de errores, arreglé las restricciones de contexto de mi base de datos y el sitio comenzó a funcionar bien ... mientras tanto Management Studio todavía se está descargando
fuente
Para mí, la base de datos no se creó y el código EF primero debería haberla creado, pero siempre se encontró con este error. La misma cadena de conexión estaba funcionando en el proyecto web predeterminado de aspnet core. La solución fue agregar
antes del primer contacto con la base de datos (antes de la siembra de la base de datos).
fuente
La cuestión
El error se presenta como un mensaje similar a este:
La solución
La solución se coloca en los siguientes pasos. ¡No perderá ningún dato en su base de datos y no debe borrar su archivo de base de datos!
Requisito previo: debe tener instalado SQL Server Management Studio (Full o Express)
La fuente de la solución: https://www.codeproject.com/Tips/775607/How-to-fix-LocalDB-Requested-Login-failed
fuente
También sucede cuando escribe un nombre incorrecto de DB
A veces, es solo un error estúpido. Tardé más de 1 hora en descubrir esto :( porque primero intento muchas cosas difíciles
fuente
Intenté actualizar el usuario y funcionó. Vea el comando a continuación.
Simplemente reemplácelo en
user('ftool')
consecuencia.fuente
Esto funciona para mí.
Lea este blog.
http://blog.sqlauthority.com/2009/08/20/sql-server-fix-error-cannot-open-database-requested-by-the-login-the-login-failed-login-failed-for- user-nt-Authoritynetwork-service /
fuente
Usé la autenticación de Windows para conectarme al archivo .mdf de la base de datos local y mi servidor local era SQL Server 2014. Mi problema se resolvió usando esta cadena de conexión:
fuente
En mi caso es un tema diferente. La base de datos se convirtió en modo de usuario único y una segunda conexión a la base de datos mostraba esta excepción. Para resolver este problema, siga los pasos a continuación.
exec sp_who2
ay busque todas las conexiones a la base de datos 'my_db'. Elimine todas las conexiones haciendoKILL { session id }
donde id de sesión es el SPID enumerado por sp_who2.fuente
No he visto esto mencionado en los números anteriores, así que permítanme descartar otra posibilidad. Puede ser que
IFItest
no sea accesible o simplemente no exista. Por ejemplo, si uno tiene varias configuraciones, cada una con su propia base de datos, es posible que el nombre de la base de datos no se haya cambiado al correcto para la configuración actual.fuente
NB: si utiliza un servicio de Windows para alojar el servicio web.
Debe asegurarse de que su servicio web esté utilizando la cuenta de inicio de sesión correcta para conectarse a SQL Server.
fuente
Inspirado por la respuesta de Cyptus que usé
en EF6 antes del primer contacto con la base de datos (antes de la siembra de la base de datos).
fuente
Si no ha creado la base de datos en su servidor, obtendrá el mismo error de inicio de sesión. Asegúrese de que la base de datos exista antes de iniciar sesión.
fuente
Me encontré con este problema al intentar escribir en la base de datos predeterminada proporcionada en la plantilla asp.net mvc. Esto se debió al hecho de que la base de datos aún no se había creado.
Para crear la base de datos y asegurarse de que sea accesible, siga estos pasos:
Esto creará la base de datos y ejecutará todas las migraciones necesarias en ella.
fuente
La mejor opción sería utilizar la autenticación integrada de Windows, ya que es más segura que la autenticación SQL. Cree un nuevo usuario de Windows en SQL Server con los permisos necesarios y cambie el usuario de IIS en la configuración de seguridad del grupo de aplicaciones.
fuente
Descubrí que también tenía que configurar la opción UserMapping al crear un nuevo inicio de sesión y esto me resolvió el problema. ¡Espero que ayude a todos los que también se encontraron atrapados aquí!
Editar: configurar el inicio de sesión como propietario de la base de datos también resolvió el siguiente problema
fuente
Algunas veces, este problema puede aparecer si abre esta base de datos en otro servidor SQL (por ejemplo, inicia SQL Management Studio (SMS) y agrega esta base de datos) y se olvida de detener este servidor. Como resultado, su aplicación intenta conectarse con el usuario que ya está conectado en esta base de datos en otro servidor. Para solucionarlo, intente detener este servidor mediante Config. despachador servidor sql.
Mis disculpas por el mal inglés. Saludos cordiales, Ignat.
fuente
En mi caso, la aplicación asp.net normalmente puede conectarse a la base de datos sin ningún problema. Noté ese mensaje en los registros. Me enciendo los registros del servidor SQL y me entero de este mensaje:
Entonces, parece que el servidor se estaba reiniciando y que el servidor SQL se había estado cerrando un poco antes que la aplicación ASP.NET y la base de datos no estuvo disponible durante unos segundos antes del reinicio del servidor.
fuente
Incluso si configuró el inicio de sesión como propietario de la base de datos y estableció la asignación de usuarios para la base de datos que usará el inicio de sesión, verifique que el usuario real de la base de datos (no solo el inicio de sesión) tenga el rol de 'propietario'.
fuente
En mi caso, estaba ejecutando un servicio de Windows con la identidad del "Sistema". El error fue:
El problema es que el error es muy engañoso. Incluso después de que agregué el inicio de sesión 'MYDOMAINNAME \ HOSTNAME $' a la base de datos, y le otorgué acceso de administrador del sistema de inicio de sesión y agregué un usuario para ese inicio de sesión en mi base de datos de destino, e hice que ese usuario dbowner, todavía recibía el mismo error. Aparentemente, necesitaba hacer lo mismo para el inicio de sesión de 'NT AUTHORITY \ SYSTEM'. Después de hacer eso, pude iniciar sesión sin problemas. No sé por qué el mensaje de error indica 'MYDOMAINNAME \ HOSTNAME $'. Eliminé ese inicio de sesión y el usuario correspondiente y todo sigue funcionando.
fuente