Définir une base de données en mode mono-utilisateurSet a Database to Single-user Mode

Cette rubrique explique comment configurer une base de données définie par l'utilisateur en mode mono-utilisateur dans SQL Server 2016SQL Server 2016 à l'aide de SQL Server Management StudioSQL Server Management Studio ou de Transact-SQLTransact-SQL.This topic describes how to set a user-defined database to single-user mode in SQL Server 2016SQL Server 2016 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL. Le mode mono-utilisateur signifie que seul un utilisateur à la fois peut avoir accès à la base de données. Il est généralement destiné à des opérations de maintenance.Single-user mode specifies that only one user at a time can access the database and is generally used for maintenance actions.

Dans cette rubriqueIn This Topic

Avant de commencer Before You Begin

Limitations et restrictions Limitations and Restrictions

  • Si d'autres utilisateurs sont connectés à la base de données au moment où vous définissez la base de données en mode mono-utilisateur, leurs connexions à la base de données sont fermées sans avertissement.If other users are connected to the database at the time that you set the database to single-user mode, their connections to the database will be closed without warning.

  • La base de données reste en mode mono-utilisateur même si l'utilisateur qui a défini l'option se déconnecte.The database remains in single-user mode even if the user that set the option logs off. À ce stade, un autre utilisateur (et un seul) peut se connecter à la base de données.At that point, a different user, but only one, can connect to the database.

Configuration requise Prerequisites

  • Avant d'affecter la valeur SINGLE_USER à la base de données, vérifiez que l'option AUTO_UPDATE_STATISTICS_ASYNC a la valeur OFF.Before you set the database to SINGLE_USER, verify that the AUTO_UPDATE_STATISTICS_ASYNC option is set to OFF. Si la valeur de cette option est ON, le thread d'arrière-plan utilisé pour mettre à jour les statistiques se connecte à la base de données et vous ne pourrez pas accéder à celle-ci en mode mono-utilisateur.When this option is set to ON, the background thread that is used to update statistics takes a connection against the database, and you will be unable to access the database in single-user mode. Pour plus d’informations, consultez Options ALTER DATABASE SET (Transact-SQL).For more information, see ALTER DATABASE SET Options (Transact-SQL).

Sécurité Security

Autorisations Permissions

Nécessite l'autorisation ALTER sur la base de données.Requires ALTER permission on the database.

Utilisation de SQL Server Management Studio Using SQL Server Management Studio

Pour définir une base de données en mode mono-utilisateurTo set a database to single-user mode

  1. Dans l' Explorateur d'objets, connectez-vous à une instance du Moteur de base de données SQL ServerSQL Server Database Engine, puis développez-la.In Object Explorer, connect to an instance of the Moteur de base de données SQL ServerSQL Server Database Engine, and then expand that instance.

  2. Cliquez avec le bouton droit sur la base de données à modifier, puis cliquez sur Propriétés.Right-click the database to change, and then click Properties.

  3. Dans la boîte de dialogue Propriétés de la base de données , cliquez sur la page Options .In the Database Properties dialog box, click the Options page.

  4. Dans l'option Restreindre l'accès , sélectionnez Utilisateur unique.From the Restrict Access option, select Single.

  5. Si d'autres utilisateurs sont connectés à la base de données, un message Ouvrir les connexions apparaît.If other users are connected to the database, an Open Connections message will appear. Pour modifier la propriété et fermer toutes les autres connexions, cliquez sur Oui.To change the property and close all other connections, click Yes.

    Vous pouvez également définir la base de données pour un accès Multiple ou Restreint à l'aide de cette procédure.You can also set the database to Multiple or Restricted access by using this procedure. Pour plus d’informations sur les options de restriction d’accès, consultez Propriétés de la base de données (page Options).For more information about the Restrict Access options, see Database Properties (Options Page).

Utilisation de Transact-SQL Using Transact-SQL

Pour définir une base de données en mode mono-utilisateurTo set a database to single-user mode

  1. Connectez-vous au Moteur de base de donnéesDatabase Engine.Connect to the Moteur de base de donnéesDatabase Engine.

  2. Dans la barre d'outils standard, cliquez sur Nouvelle requête.From the Standard bar, click New Query.

  3. Copiez et collez l'exemple suivant dans la fenêtre de requête, puis cliquez sur Exécuter.Copy and paste the following example into the query window and click Execute. Cet exemple attribue à la base de données la valeur SINGLE_USER pour obtenir l'accès exclusif.This example sets the database to SINGLE_USER mode to obtain exclusive access. L'exemple attribue ensuite à l'état de la base de données AdventureWorks2012AdventureWorks2012 la valeur READ_ONLY et octroie l'accès à la base de données à tous les utilisateurs. L'option d'arrêt WITH ROLLBACK IMMEDIATE est spécifiée dans la première instruction ALTER DATABASE .The example then sets the state of the AdventureWorks2012AdventureWorks2012 database to READ_ONLY and returns access to the database to all users.The termination option WITH ROLLBACK IMMEDIATE is specified in the first ALTER DATABASE statement. Suite à celà, toutes les transactions incomplètes sont restaurées et les autres connexions à la base de données AdventureWorks2012AdventureWorks2012 sont immédiatement déconnectées.This will cause all incomplete transactions to be rolled back and any other connections to the AdventureWorks2012AdventureWorks2012 database to be immediately disconnected.

    USE master;
    GO
    ALTER DATABASE AdventureWorks2012
    SET SINGLE_USER
    WITH ROLLBACK IMMEDIATE;
    GO
    ALTER DATABASE AdventureWorks2012
    SET READ_ONLY;
    GO
    ALTER DATABASE AdventureWorks2012
    SET MULTI_USER;
    GO
    

Voir aussiSee Also

ALTER DATABASE (Transact-SQL)ALTER DATABASE (Transact-SQL)