J'ai créé un service Web qui enregistre certaines données dans la base de données. Mais j'obtiens cette erreur:
Impossible d'ouvrir la base de données "test" demandé par la connexion. La connexion a échoué. La connexion a échoué pour l'utilisateur «xyz \ ASPNET».
Ma chaîne de connexion est
Data Source=.\SQLExpress;Initial Catalog=IFItest;Integrated Security=True
c#
asp.net
sql-server
iis
web-services
coure2011
la source
la source
Réponses:
Eh bien, l'erreur est assez claire, non? Vous essayez de vous connecter à votre serveur SQL avec l'utilisateur «xyz / ASPNET» - c'est le compte sous lequel votre application ASP.NET s'exécute.
Ce compte n'est pas autorisé à se connecter à SQL Server - créez une connexion sur SQL Server pour ce compte ou spécifiez un autre compte SQL Server valide dans votre chaîne de connexion.
Pouvez-vous nous montrer votre chaîne de connexion (en mettant à jour votre question d'origine)?
MISE À JOUR: Ok, vous utilisez l'authentification Windows intégrée -> vous devez créer une connexion SQL Server pour "xyz \ ASPNET" sur votre serveur SQL - ou changer votre chaîne de connexion en quelque chose comme:
Si vous avez un utilisateur "xyz" avec un mot de passe "top $ secret" dans votre base de données.
la source
J'opterais pour la deuxième option: le message d'erreur implique que la base de données par défaut n'est pas là ou n'a pas de droits, plutôt que de ne pas être configurée en tant que connexion.
Pour tester s'il est configuré comme connexion
Si NULL
Sinon NULL
Si NULL
la source
J'ai eu ce problème et ce qui l'a résolu pour moi était de:
la source
La meilleure solution pour le problème de connexion est de créer un utilisateur de connexion dans sqlServer. Voici les étapes pour créer une connexion SQL Server qui utilise l'authentification Windows (SQL Server Management Studio):
Par exemple, si le nom d'utilisateur est
xyz\ASPNET
, entrez ce nom dans la zone Nom de connexion.Vous devez également modifier le mappage utilisateur pour autoriser l'accès à la base de données à laquelle vous souhaitez accéder.
la source
La plupart du temps, ce n'est pas un problème de connexion, mais un problème avec la création de la base de données elle-même. Donc, s'il y a une erreur lors de la création de votre base de données, elle ne sera pas créée en premier lieu. Dans ce cas, si vous essayez de vous connecter, quel que soit l'utilisateur, la connexion échoue. Cela se produit généralement en raison d'une mauvaise interprétation logique du contexte de base de données.
Visitez le site dans un navigateur et lisez VRAIMENT ces journaux d'erreurs, cela peut vous aider à repérer le problème avec votre code (généralement des problèmes de logique conflictuels avec le modèle).
Dans mon cas, le code s'est bien compilé, même problème de connexion, alors que je téléchargeais encore le studio de gestion, j'ai parcouru le journal des erreurs, corrigé mes contraintes de contexte de base de données et le site a commencé à fonctionner correctement .... pendant ce temps, le studio de gestion continue de télécharger
la source
Pour moi, la base de données n'a pas été créée et le code EF aurait d'abord dû la créer mais toujours se terminer par cette erreur. La même chaîne de connexion fonctionnait dans le projet Web par défaut aspnet core. La solution était d'ajouter
avant le premier contact de la base de données (avant l'amorçage de la base de données).
la source
Le problème
L'erreur se présente comme un message similaire à celui-ci:
Le correctif
La solution est posée dans les étapes suivantes. Vous ne perdrez aucune donnée de votre base de données et vous ne devez pas supprimer votre fichier de base de données!
Pré-requis: vous devez avoir installé SQL Server Management Studio (complet ou express)
La source de la solution: https://www.codeproject.com/Tips/775607/How-to-fix-LocalDB-Requested-Login-failed
la source
Cela se produit également lorsque vous tapez un mauvais nom de DB
Parfois, c'est juste une erreur stupide. Je prends environ plus d'une heure pour le découvrir: (parce que j'essaye juste beaucoup de choses difficiles en premier
la source
J'ai essayé de mettre à jour l'utilisateur et cela a fonctionné. Voir la commande ci-dessous.
Remplacez simplement en
user('ftool')
conséquence.la source
Cela fonctionne pour moi.
Lisez ce 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- service-réseau-autorité-utilisateur-nt /
la source
J'ai utilisé l'authentification Windows pour me connecter au fichier .mdf de la base de données locale et mon serveur local était le serveur sql 2014. Mon problème a été résolu en utilisant cette chaîne de connexion:
la source
Dans mon cas, c'est une question différente. La base de données est passée en mode mono-utilisateur et une deuxième connexion à la base de données montrait cette exception. Pour résoudre ce problème, suivez les étapes ci-dessous.
exec sp_who2
et trouvez toutes les connexions à la base de données 'my_db'. Tuez toutes les connexions en faisantKILL { session id }
où l'identifiant de session est le SPID répertorié par sp_who2.la source
Je n'ai pas vu cela mentionné dans les numéros précédents, alors laissez-moi évoquer une autre possibilité. Il se peut que ce
IFItest
ne soit pas accessible ou n'existe tout simplement pas. Par exemple, si l'on a un certain nombre de configurations, chacune avec sa propre base de données, il se peut que le nom de la base de données n'ait pas été changé pour le bon pour la configuration actuelle.la source
NB: si vous utilisez un service Windows pour héberger le webservice.
Vous devez vous assurer que votre service Web utilise le bon compte de connexion pour se connecter à SQL Server.
la source
Inspiré de la réponse de cyptus, j'ai utilisé
sur EF6 avant le premier contact de base de données (avant l'amorçage DB).
la source
Si vous n'avez pas créé la base de données sur votre serveur, vous obtiendrez la même erreur de connexion. Assurez-vous que la base de données existe avant de vous connecter.
la source
J'ai rencontré ce problème en essayant d'écrire dans la base de données par défaut fournie dans le modèle asp.net mvc. Cela était dû au fait que la base de données n'avait pas encore été créée.
Pour créer la base de données et vous assurer qu'elle est accessible, procédez comme suit:
Cela créera la base de données et exécutera toutes les migrations nécessaires dessus.
la source
La meilleure option serait d'utiliser l'authentification intégrée de Windows car elle est plus sécurisée que l'authentification SQL. Créez un nouvel utilisateur Windows dans le serveur SQL avec les autorisations nécessaires et modifiez l'utilisateur IIS dans les paramètres de sécurité du pool d'applications.
la source
J'ai constaté que je devais également définir l'option UserMapping lors de la création d'une nouvelle connexion et cela a résolu le problème pour moi. J'espère que cela aidera tous ceux qui se sont également retrouvés coincés ici!
Modifier: définir la connexion en tant que propriétaire de la base de données a également résolu le problème suivant
la source
Parfois, ce problème peut apparaître si vous ouvrez cette base de données dans un autre serveur SQL (par exemple, vous lancez sql managment studio (SMS) et ajoutez cette base de données) et oubliez d'arrêter ce serveur. En conséquence, votre application essaie de se connecter avec un utilisateur déjà connecté dans cette base de données sous un autre serveur. Pour résoudre ce problème, essayez d'arrêter ce serveur par Config. serveur SQL du répartiteur.
Mes excuses pour le mauvais anglais. Cordialement, Ignat.
la source
Dans mon cas, l'application asp.net peut généralement se connecter à la base de données sans aucun problème. J'ai remarqué un tel message dans les journaux. J'allume les journaux du serveur SQL et je trouve ce message:
Il semble donc que le serveur redémarrait et que le serveur SQL s'était arrêté un peu plus tôt que l'application ASP.NET et que la base de données n'était pas disponible pendant quelques secondes avant le redémarrage du serveur.
la source
Même si vous avez défini la connexion en tant que propriétaire de la base de données et défini le mappage utilisateur pour la base de données qui utilisera la connexion, vérifiez que l'utilisateur réel de la base de données (et pas seulement la connexion) a le rôle de «propriétaire».
la source
Dans mon cas, j'exécutais un service Windows sous l'identité «Système». L'erreur était:
Le problème est que l'erreur est très trompeuse. Même après avoir ajouté la connexion 'MYDOMAINNAME \ HOSTNAME $' à la base de données, accordé à cette connexion l'accès sysadmin et ajouté un utilisateur pour cette connexion sur ma base de données cible, et fait de cet utilisateur dbowner, j'obtenais toujours la même erreur. Apparemment, j'avais besoin de faire de même pour la connexion 'NT AUTHORITY \ SYSTEM'. Après avoir fait cela, j'ai pu me connecter sans problème. Je ne sais pas pourquoi le message d'erreur se plaint de "MYDOMAINNAME \ HOSTNAME $". J'ai supprimé cette connexion et l'utilisateur correspondant et tout fonctionne toujours.
la source