IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Déconnecter des sessions actives


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2012
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 127
    Par défaut Déconnecter des sessions actives
    Bonjour,

    Je gère une base de donnée utilisée par une centaine d'opérateurs via des applicatifs access codés en vba.
    Chaque applicatif fait appel a un fichier contenant des fonctions communes.

    Quand j'ai besoin de faire des modifications dans ce fichier je dois forcer la déconnexion de tous les utilisateurs. Je fais ceci via une commande vba qui est contenu dans chaque applicatif et qui reboucle régulièrement sur une variable contenu dans une table. Quand cette variable est false, l'applicatif reste ouvert, quand elle est true l'applicatif se ferme.
    Cependant quand un utilisateur vérouille sa session windows tout en laissant l'applicatif ouvert, la macro de déconnection ne fonctionne plus!

    Y a t'il un moyen via sql server de forcer la déconnection de tous les utilisateurs ou d'un utilisateur spécifique? Faut il avoir des droits particuliers?

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Bonjour,

    Tu peux toujours supprimer tes sessions "inactives" avec la commande KILL mais cela ne reste pas très propre. Après il faut également déterminer si une session peut être supprimée ou non ...

    On a déjà eu ce genre de problème avec Access et on avait mis en place une tâche planifiée dans Windows qui permettait de forcer la fermeture des formulaires Access la nuit. En effet certains utilisateurs ne se déconnectaient pas le soir et verrouillaient certaines tables durant la nuit.

    A voir si cela colle avec ton contexte.

    ++

  3. #3
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2012
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 127
    Par défaut
    Alors je n'y connais pas grand chose en tâches planifiées mais comme le nom l'indique il faut j'imagine définir une périocité d'exécution.
    Dans mon cas, le besoin de forcer la fermeture des sessions access n'est pas du tout planifié. Ca peut être n'importe quand dans la journée.

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    salut,

    pour les connections en cours, dans le tuto de fadace, on avait ce script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    USE master
    GO
    SELECT 'kill', spid
    FROM sysprocesses
    WHERE dbid = db_id('MaBase')
    GO
    /*Exécution de l'output de la commande ci-dessus afin de libérer la base */
    GO
     
    --RESTORE DATABASE MaBase FROM DISK=N'D:\BACKUP\MaBase.bal'
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2012
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 127
    Par défaut
    Je ne dois pas être doué car je n'arrive pas à faire fonctionner ton code.
    J'écris donc ce script:

    USE master
    GO
    SELECT 'kill', spid
    FROM sysprocesses
    WHERE dbid = db_id('Hybrides')
    GO

    ça me retourne tout un tableau avec plusieurs lignes seulement ça ne déconnecte personne de la base...

    PS: je ne suis que process_admin sur le serveur et db_owner sur la base Hybrides

  6. #6
    Membre Expert

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Par défaut
    --> Quelles sont les sessions/applications/utilisateurs connectés ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    SELECT
    c.session_id [session_id],
    c.net_transport [protocol],
    c.auth_scheme [authentification],
    s.login_time,
    c.last_read ,
    c.last_write,
    s.hostname [client],
    s.loginame,
    @@SERVERNAME AS [server],
    s.program_name,
    s.status
    FROM sys.dm_exec_connections c INNER JOIN sys.sysprocesses s ON c.session_id = s.spid
    WHERE session_id <> @@SPID
    --> Comment Killer les sessions/applications/utilisateurs connectés ?
    il faut utiliser le numéro de la (les) session_id listés ci-dessus et faire ensuite

    Etienne ZINZINDOHOUE
    Billets-Articles

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Liste des sessions actives de la base
    Par SheikYerbouti dans le forum Contribuez
    Réponses: 2
    Dernier message: 10/10/2012, 16h01
  2. Réponses: 9
    Dernier message: 19/01/2012, 09h22
  3. [VB.NET] Utilisation des sessions dans Session_End ?
    Par San Soussy dans le forum ASP.NET
    Réponses: 2
    Dernier message: 02/02/2005, 16h40
  4. [VS.NET] Liens relatifs et suivi des sessions ?
    Par Webman dans le forum ASP.NET
    Réponses: 6
    Dernier message: 18/11/2004, 21h21
  5. [tomcat] gestion des sessions
    Par sebos63 dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 12/10/2004, 14h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo