Message d’erreur lorsque vous vous connectez à une instance de SQL Server : « Impossible d’ouvrir de base de données par défaut d’utilisateur »

Symptômes

Chaque utilisateur dispose d’une base de données par défaut. Lorsque vous vous connectez à un ordinateur qui exécute Microsoft SQL Server et que vous ne spécifiez pas d’une connexion de base de données, la base de données par défaut est utilisé. Toutefois, si la base de données par défaut n’est pas disponible au moment de la connexion, vous ne serez pas en mesure de vous connecter. Au lieu de cela, vous recevez message d’erreur 4062 ou 4064, qui ressemble à la suivante :

Impossible d’ouvrir la base de données utilisateur par défaut

Cause

La base de données utilisateur par défaut n’est pas disponible au moment de la connexion. Il est possible que la base de données :

  • Est en mode suspect.
  • N’existe plus.
  • Est en mode d’utilisateur unique et la seule connexion disponible est déjà utilisé par une personne ou un autre.
  • A été détaché.
  • A été définie pour l’état RESTRICTED_USER.
  • Est hors connexion.
  • Est définie sur l’état d’urgence.
  • Est pas que le compte de connexion mappé à un utilisateur, ou l’accès a été refusé à l’utilisateur.
  • Fait partie d’un miroir de base de données.
En outre, le compte de connexion peut être membre de plusieurs groupes, et la base de données par défaut pour l’un de ces groupes n’est pas disponible au moment de la connexion.

Solution de contournement

Pour contourner ce problème, spécifiez une base de données valide, disponible dans la chaîne de connexion. Pour éviter l’erreur lorsque la base de données par défaut de l’utilisateur n’est pas disponible, ouvrez une session en tant qu’utilisateur qui peut modifier les connexions d’accès. Modifiez ensuite la base de données par défaut de l’utilisateur à une base de données qui est actuellement disponible pour une connexion.

SQL Server 2005 et versions ultérieures

Vous pouvez utiliser l’utilitaire sqlcmd pour modifier la base de données par défaut dans SQL Server 2005. Pour ce faire, procédez comme suit :
  1. Cliquez sur Démarrer, sur exécuter, tapez cmd et appuyez sur ENTRÉE.
  2. Utilisez une des méthodes suivantes, selon le type d’authentification utilisé pour la connexion d’accès SQL Server :
    • Si la connexion d’accès SQL Server utilise l’authentification Microsoft Windows pour vous connecter à l’instance, tapez la ligne suivante à l’invite de commande et appuyez sur ENTRÉE :
      sqlcmd –E -S InstanceName –d master
    • Si la connexion d’accès SQL Server utilise l’authentification SQL Server pour se connecter à l’instance, tapez la ligne suivante à l’invite de commande et appuyez sur ENTRÉE :
      maître Sqlcmd -S InstanceName -d - U -P de SQLLogin mot de passe
    Remarque : InstanceName est un espace réservé pour le nom de l’instance de SQL Server 2005 à laquelle vous êtes connecté. SQLLogin est un espace réservé pour le nom de connexion SQL Server dont base de données par défaut a été supprimé. Mot de passe est un espace réservé pour le mot de passe de connexion SQL Server.
  3. À l’invite sqlcmd, tapez la commande suivante et appuyez sur ENTRÉE :
    ALTER LOGIN SQLLogin WITH DEFAULT_DATABASE = AvailDBName
    Remarque : AvailDBName est un espace réservé pour le nom de la base de données existante qui est accessible par l’ouverture de session dans l’instance de SQL Server.
  4. À l’invite sqlcmd, tapez GOet appuyez sur ENTRÉE.

SQL Server 2000 et SQL Server 7.0

Vous pouvez utiliser l’utilitaire osql pour modifier la base de données par défaut dans SQL Server 2000 et SQL Server 7.0. Pour ce faire, procédez comme suit :
  1. À une invite de commandes, tapez ce qui suit et appuyez sur ENTRÉE :
    C:\ > maître -d -E d’osql
  2. À l’invite osql , tapez la commande suivante et appuyez sur ENTRÉE :
    1 > sp_defaultdb ' utilisateur 's_login', 'maître'
  3. À la seconde invite, tapez ce qui suit et appuyez sur ENTRÉE :
    2 > Aller

État

Ce comportement est voulu par la conception.

Plus d'informations

Pour reproduire ce comportement, essayez de vous connecter avec OSQL et utilisez l’option -d avec une base de données existante qui est dans un état en ligne normal. La connexion aboutit sans message d’erreur.

À l’inverse, vous recevez des réponses qui ressemblent à ce qui suit à partir de divers utilitaires de client de SQL Server, lorsque la base de données n’est pas disponible :
  • SQL Server Management Studio (SQL Server 2005)
    Impossible de se connecter à un NomServeur
    INFORMATIONS SUPPLÉMENTAIRES :
    Ne peut pas ouvrir la base de données utilisateur par défaut. Échec de la connexion. Échec de la connexion pour l’utilisateur 'nom_utilisateur'. (Microsoft SQL Server, erreur : 4064)
  • À l'aide d'utilitaire Sqlcmd dans SQL Server 2005
    Msg 4064, niveau 11, état 1, serveur nom_serveur, ligne 1
    Ne peut pas ouvrir la base de données utilisateur par défaut. Échec de la connexion.

    Msg 18456, niveau 14, état 1, serveur nom_serveur, ligne 1 de la connexion a échoué pour l’utilisateur 'nom_utilisateur'.
  • Analyseur de requêtes SQL Server 2000 (AQ)
    Impossible de se connecter au serveur TESTSERVER :
    Serveur : Msg 4064, niveau 16, état 1
    [Microsoft] [Pilote de ODBC SQL Server] [SQL Server] Ne peut pas ouvrir la base de données utilisateur par défaut. Échec de la connexion.
  • SQL Server 2000 Server Enterprise Manager (SEM)
    Une connexion n’a pu pas être établie avec TESTSERVER - Impossible d’ouvrir le dbid' utilisateur par défaut de base de données'. Utilisation de base de données master.

    Vérifiez que SQL Server est en cours d’exécution et vérifiez les propriétés de l’enregistrement de SQL Server (par un clic droit sur le nœud TESTSERVER) et réessayez.
  • Une invite de commande à l’aide de SQL Server 2000 OSQL

    Le message d’erreur suivant s’affiche lorsque vous utilisez la C:\ > osql-e commande :

    Ne peut pas ouvrir la base de données utilisateur par défaut. Échec de la connexion.
  • Analyseur de requêtes SQL Server 7.0 (AQ)
    Impossible de se connecter au serveur \\TESTSERVER :
    Serveur : Msg 4062, niveau 16, état 1
    [Microsoft] [Pilote de ODBC SQL Server] [SQL Server] Impossible d’ouvrir la base de données de la valeur par défaut '< ID >' utilisateur. Utilisation de base de données master.
  • Une invite de commande à l’aide de SQL Server 7.0 OSQL

    Le message d’erreur suivant s’affiche lorsque vous utilisez la C:\ > osql-e commande :

    Impossible d’ouvrir le dbid' utilisateur par défaut de base de données'.
    Utilisation de base de données master.
Le tableau suivant fournit plus d’informations sur les produits ou les outils automatiquement vérifier cette condition sur votre instance de SQL Server et sur les versions du produit SQL Server par rapport à laquelle la règle est évaluée.
Logiciel de règlesTitre de la règleDescription de la règleVersions du produit par rapport à laquelle la règle est évaluée.
System Center AdvisorEntités de sécurité au niveau du serveur SQL Server configurées avec la base de données inexistanteSystem Center Advisor vérifie si les connexions présentes dans l’instance de SQL Server sont configurées avec une base de données par défaut qui n’existe plus. Passez en revue les détails sont fournis dans la section « Informations collectées » de l’alerte du Gestionnaire d’accès et suivent les étapes décrites dans cet article pour résoudre le problème.SQL Server 2008

SQL Server 2008 R2

SQL Server 2012

Propriétés

ID d'article : 307864 - Dernière mise à jour : 1 févr. 2017 - Révision : 2

Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Workgroup Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2000 Standard, Microsoft SQL Server 7.0 Standard, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Enterprise Evaluation, Microsoft SQL Server 2008 Express, Microsoft SQL Server 2008 Express with Advanced Services, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2008 R2 Express with Advanced Services, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Standard Edition for Small Business, Microsoft SQL Server 2008 R2 Web, Microsoft SQL Server 2008 R2 Workgroup, Microsoft SQL Server 2008 Standard Edition for Small Business, Microsoft SQL Server 2008 Web, Microsoft SQL Server 2008 Workgroup, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Express, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2012 Web, Microsoft SQL Server 2012 Enterprise Core, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Express, Microsoft SQL Server 2014 Express, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Web, Microsoft SQL Server 2014 Web, Microsoft SQL Server 2016 Standard, Microsoft SQL Server 2016 Enterprise Core, Microsoft SQL Server 2016 Developer, Microsoft SQL Server 2016 Enterprise

Commentaires