Tutorial

Purger les utilisateurs inactifs de la base de données


Les utilisateurs inactifs ne sont pas purgés de la base de données. Il peut être nécessaire de supprimer ces entrées en base de données.

Cette action peut être nécessaire dans le cas par exemple de la conservation de la base de données lors d’une montée de version.

 

La requête SQL suivante permet d’effectuer cette purge:

DECLARE @month AS INT = 2;       -- Nombre de mois sans lancement d'application, défini par défaut à 2


WITH OldUsers
AS (
       SELECT DISTINCT(u.id) AS idUser, u.nom_ut FROM utilisateurs u
             EXCEPT
       SELECT DISTINCT(u.id) AS idUser, u.nom_ut FROM useruseappli uua
       INNER JOIN utilisateurs u ON u.id = uua.id_ut
       WHERE uua.date_deb > DATEADD (month, -@MONTH, GETDATE())
)
SELECT * INTO tmpTable FROM OldUsers;
DELETE FROM liaisgrpuser WHERE id_user IN (SELECT idUser FROM tmpTable);
DELETE FROM useruseappli WHERE id_ut IN (SELECT idUser FROM tmpTable);
DELETE FROM utilisateurs WHERE id IN (SELECT idUser FROM tmpTable);
DELETE FROM userusesession WHERE username IN (SELECT nom_ut FROM tmpTable);
DELETE FROM useractivity WHERE userid IN (SELECT idUser FROM tmpTable);
DELETE FROM boostcreds WHERE id_userIN (SELECT idUser FROM tmpTable);
DROP TABLE tmpTable;

 

La requête permet de purger les données des utilisateurs qui n’ont pas eu d’activité dans les 2 derniers mois.

Si Scaleout est activé, un redémarrage du service AdisUser sur les serveurs d’administration sera nécessaire afin que la purge soit prise en compte.


This topic has been closed for comments