Le script KickUserOut.sql illustré sur le listing 1 démontre comment utiliser un script T-SQL pour déconnecter un utilisateur d’une base de données. Il commence par déclarer les variables et définir leurs valeurs. Les variables du bloc A sont parmi les plus importantes. @LoginName spécifie le nom de connexion de l’utilisateur
Etape n° 2 : Exécution de KickUserOut.sql
à déconnecter de la base de données spécifiée dans la variable @DatabaseName. Dans notre exemple, l’utilisateur et la base de données sont respectivement sa et master. Vous devez personnaliser ces variables avec les noms de connexion et de base de données obtenus à l’étape 1.
Vous pouvez également personnaliser deux autres variables : @NumberOfTimesToLoop et @TimeToCheckKillIn Sec. La première spécifie le nombre maximal de boucles à effectuer par le script pour vérifier si un processus a été arrêté. La valeur de cette variable peut être n’importe quel entier positif. La deuxième spécifie la durée d’attente maximale en secondes entre deux vérifications. La valeur se situe dans une plage entre 1 et 599 secondes.
Après avoir déclaré et défini ces variables, KickUser Out.sql crée une table temporaire nommée #utbSPWHO2. Celleci contient les résultats de la procédure stockée sp_who2, laquelle est disponible dans SQL Server versions 2000 et 2005, et récupère des données pertinentes de la table sysprocesses. Pour en savoir plus sur sp_who2 et son utilisation de sysprocesses, vous pouvez exécuter la commande EXEC sp_helptext ‘sp_who2’ sur la base de données master.
Il est important de noter que si le serveur comporte plusieurs processeurs, SQL Server peut choisir d’utiliser le parallélisme pour exécuter une instruction utilisateur. Dans ce cas, plusieurs sous-threads avec le même SPID sont retournés par sp_who2. Cette procédure stockée ne retourne pas l’ID unique de chaque sous-thread. Vous pouvez néanmoins le trouver dans la colonne ecid de la table sysprocesses. Sinon, la procédure stockée sp_who, qui est une version plus ancienne de sp_who2, renvoie cette valeur. Vous trouverez cette ancienne mouture dans SQL Server 2005 et SQL Server 2000. Le bloc B présente le code servant à créer la table #utbSPWHO2 et son index ordonné en clusters.
Cette table contient les colonnes suivantes :
• SPID – contient le SPID de chaque processus.
• [Status] – indique le statut (par ex., Runnable, Sleeping, Background, Rollback) de chaque processus.
• LoginName – fournit le nom de connexion de l’utilisateur qui a démarré chaque processus.
• HostName – contient le nom du poste de travail à partir duquel chaque processus est lancé (par ex., nom de l’ordinateur client).
• BlockedBy – inclut des informations sur toute activité de blocage concernant les threads et processus du serveur.
• DBName – contient le nom de la base de données accédée par chaque utilisateur.
• Command – fournit des informations sur l’instruction SQL exécutant sp_who2.
• CPUTime – propose des informations sur le processeur du serveur.
• DiskIO – contient des détails sur les E/S disque du serveur.
• LastBatchRunTime – donne la date et l’heure de la connexion de chaque utilisateur.
• ProgramName – contient le nom du programme qui a démarré chaque processus (notez que ce nom peut ne pas être disponible car il dépend de l’application de l’utilisateur).
• SPID2 – contient les mêmes informations que la colonne SPID.
• RequestID – fournit l’identifiant de la requête s’exécutant dans SQL Server (cf. la vue de gestion dynamique sys.dm_ exec.requests pour en savoir plus sur cet identifiant).
Téléchargez cette ressource
Sécuriser Microsoft 365 avec une approche Zero-Trust
Découvrez comment renforcer la cyber-résilience de Microsoft 365 grâce à une approche Zero-Trust, une administration granulaire et une automatisation avancée. La technologie Virtual Tenant de CoreView permet de sécuriser et simplifier la gestion des environnements complexes, tout en complétant vos stratégies IAM, y compris dans les secteurs réglementés.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- ADI, l’infrastructure de données de Scality pensée pour l’ère de l’IA et de la souveraineté
- Les coûts cachés des merge requests générées par l’IA
- WatchGuard lance Rai, une IA agentique taillée pour les MSP
- Mythos révèle les limites d’un Zero Trust centré sur le réseau
Articles les + lus
Analyse Patch Tuesday Mai 2026
Les coûts cachés des merge requests générées par l’IA
Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
Moderniser le développement logiciel : de la fragmentation à l’intégration
Analyse Patch Tuesday Avril 2026
À la une de la chaîne Tech
- Analyse Patch Tuesday Mai 2026
- Les coûts cachés des merge requests générées par l’IA
- Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
- Moderniser le développement logiciel : de la fragmentation à l’intégration
- Analyse Patch Tuesday Avril 2026
