269 votes

Quitter le mode mono-utilisateur

Actuellement, ma base de données est en mode mono-utilisateur. Lorsque j'essaie de développer ma base de données, j'obtiens une erreur :

La base de données 'my_db' n'est pas accessible.(ObjectExplorer)

De plus, lorsque j'essaie de supprimer la base de données, j'obtiens l'erreur suivante :

C à ce moment-là. La base de données est en mode mono-utilisateur et un utilisateur est est actuellement connecté à la base de données.

Comment quitter le mode mono-utilisateur ? Aucun utilisateur n'utilise cette base de données.

Lorsque j'essaie de naviguer sur mon site avec IIS, l'erreur que j'obtiens est la suivante :

A de la requête web en cours. Les informations relatives à l'origine et à l'emplacement de l'exception peuvent être identifiées à l'aide de la trace de pile de l'exception ci-dessous.

J'ai l'impression que le mode mono-utilisateur en est la cause.

485voto

CRAFTY DBA Points 4578

SSMS utilise généralement plusieurs connexions à la base de données dans les coulisses. Vous devrez interrompre ces connexions avant de modifier le mode d'accès :

  1. Tout d'abord, assurez-vous que l'explorateur d'objets pointe vers une base de données système telle que master.
  2. Deuxièmement, exécuter un sp_who2 et trouver toutes les connexions à la base de données "my_db". Mettez fin à toutes les connexions en faisant KILL { session id } où l'identifiant de la session est le SPID listé par sp_who2 .
  3. Troisièmement, ouvrez une nouvelle fenêtre de requête.

Après ces trois étapes, exécutez le code suivant.

-- Start in master
USE MASTER;

-- Add users
ALTER DATABASE [my_db] SET MULTI_USER
GO

Voir mon article de blog sur la gestion des fichiers de base de données. Ce document a été écrit pour déplacer des fichiers, mais la gestion des utilisateurs est la même.

40voto

Tomas Points 321
  1. Cliquez avec le bouton droit de la souris sur votre base de données dans la section des bases de données
  2. Sélectionnez "Propriétés"
  3. Sélectionner la page "Options
  4. Faites défiler la liste des "Autres options" et modifiez le champ "Restreindre l'accès".

screenshot of options page of sql server

33voto

rsbarro Points 12575

Pour sortir du mode mono-utilisateur, essayez :

ALTER DATABASE [my_db] SET MULTI_USER

Pour revenir au mode mono-utilisateur, vous pouvez utiliser :

ALTER DATABASE [my_db] SET SINGLE_USER

19voto

J'ai essayé et cela fonctionne

ALTER DATABASE dbName SET MULTI_USER WITH ROLLBACK IMMEDIATE

11voto

Geri Reshef Points 39

J'ai eu le même problème, et le session_id à tuer a été trouvé u

Select request_session_id From sys.dm_tran_locks Where resource_database_id=DB_ID('BI_DB_Rep');

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X