none
Supprimer connexions active Bdd RRS feed

  • Question

  • Bonjour à tous,

    depuis SSMS, y-a-t-il moyen de supprimer les connexions actives à une base de données sans avoir à détacher la base de données.

    De mémoire, avant SQL Server 2008, c'était un jeu d'enfant, mais dans le 2008 et le 2012, je ne trouve pas la solution...

    Si quelqu'un l'a...

    Merci d'avance !!!


    • Modifié bobertin vendredi 20 décembre 2013 13:06
    vendredi 20 décembre 2013 13:05

Réponses

  • Hello.

    Si j'ai bien suivi : 

    Dans SSMS, sur le nom de l'instance SQL Server, bouton droit il y a activity monitor (moniteur d'activité).

    Cela donne  la liste des sessions, un bouton droit sur la session et kill process.


    • Proposé comme réponse Kjorel mardi 31 décembre 2013 09:09
    • Marqué comme réponse bobertin jeudi 2 janvier 2014 10:47
    lundi 30 décembre 2013 23:07

Toutes les réponses

  • Je ne suis pas sur de bien comprendre la question.

    Il est possible sous SQL Server de restreindre l'accès à une base de données autrement qu'en modifiant les droits des users (ou logins). via la commande alter database :

    ALTER DATABASE [NomBase]

    SET { SINGLE_USER | RESTRICTED_USER | MULTI_USER }

    {WITH ROLLBACK AFTER integer [ SECONDS ] | ROLLBACK IMMEDIATE | NO_WAIT}

    Tout est bien expliqué sur ce lien.

    Après la commande suivante permet de couper tout accès à la base :

    ALTER DATABASE [NomBase] SET OFFLINE

     
    • Proposé comme réponse Grégory_Nail lundi 23 décembre 2013 08:03
    vendredi 20 décembre 2013 19:00
  • Hello.

    Si j'ai bien suivi : 

    Dans SSMS, sur le nom de l'instance SQL Server, bouton droit il y a activity monitor (moniteur d'activité).

    Cela donne  la liste des sessions, un bouton droit sur la session et kill process.


    • Proposé comme réponse Kjorel mardi 31 décembre 2013 09:09
    • Marqué comme réponse bobertin jeudi 2 janvier 2014 10:47
    lundi 30 décembre 2013 23:07
  • Kjorel m'a permis de voir la question sous un autre angle et dans ce cas, pour y répondre :

    L'activity monitor est trop consommateur pour la précisions qu'il amène, je t'invite donc à utiliser la requête suivante en filtrant sur la base en question dans une clause WHERE.

    SELECT s.session_id, db.name AS DB, est.text
    FROM sys.dm_exec_sessions s
    INNER JOIN sys.databases db
    	ON db.database_id = s.database_id
    INNER JOIN sys.dm_exec_connections c
    	ON s.session_id = c.session_id
    INNER JOIN sys.dm_exec_requests r
    	ON s.session_id = r.session_id 
    CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) AS EST 

    lundi 30 décembre 2013 23:17