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

Administration SQL Server Discussion :

Statistiques sur les connexions - TRIGGER LOGON


Sujet :

Administration SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2009
    Messages : 212
    Par défaut Statistiques sur les connexions - TRIGGER LOGON
    Bonjour,
    On m'a demandé de faire des stats sur les utilisateurs d'une base de données.
    (récurrences de connexions, date de la dernière connexion,..)
    L'objectif est par exemple de voir si certains login ne sont jamais utilisés.

    J'ai tenté de répondre au besoin via un trigger logon
    !!! Attention , ne pas créer ce trigger sans être sûr, au risque de ne plus pouvoir se logger sur le serveur!!!

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    USE maDB
    GO
    CREATE TABLE dbo.Login_Info
    (
           database_name VARCHAR(255),
           login_name VARCHAR(255),
           login_time DATETIME2(0)
    ) 
    GO
    USE master
    GO
    CREATE TRIGGER connection_history
    ON ALL SERVER WITH EXECUTE AS 'admin_login'  /*Créer un compte ayant les droits d'insert sur [maDB].[dbo].[Login_Info], je pense que ça suffirait*/
    FOR LOGON
    AS
           BEGIN
                    INSERT INTO [maDB].[dbo].[Login_Info]
                    SELECT DB_NAME(),ORIGINAL_LOGIN(),GETDATE()
           END
     
    --Tester une connexion
     
    SELECT * FROM maDB.dbo.Login_Info ORDER BY Login_Time DESC
    Ca a l'air de fonctionner mais :
    -J'ai plusieurs lignes à chaque connexion , à quelques ms près (j'ai l'impression qu'il log une ligne par db présente sur le serveur)
    -Des lignes s'ajoutent plus tard, alors que je suis déjà connecté

    Comment pourrais-je éviter toutes ces lignes non désirées? Est-ce faisable?

    Ou alors avez-vous une autre méthode plus simple?

    Mon objectif : stocker dans une table : login_name, logon_datetime

    Merci d'avance ,

    Vinc

  2. #2
    Invité
    Invité(e)
    Par défaut
    J'avais essayé ce genre de chose à une époque et j'avais réussi à tuer une instance avec un trigger LOGON défaillant...
    L'autre faille que j'avais trouvé, c'est que la bd de connexion est celle par défaut de l’utilisateur mais pas nécessairement la bd qui sera employé pendant tout le reste :
    Genre : le user employé est mon_user et il se logue sur [master] par défaut et est donc dans la trace produite. Cependant, aussitôt, il y a un USE [ma_BD] et tout le travail se fera sur la bd. Résultat, dans les traces, tu n'auras aucun moyen de savoir qu'il utilise en fait uniquement [ma_BD].

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2009
    Messages : 212
    Par défaut
    Ce n'est dans l'absolu pas problématique pour moi vu qu'il n'y a que maDB sur le serveur.

  4. #4
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Bonjour,

    Si vous êtes en Enterprise edition, vous pouvez pour cela utiliser un audit de sécurité
    Vous avez la possibilité de le faire écrire dans un fichier, ou dans les journaux applicatifs ou de sécurité de Windows.

    @++

Discussions similaires

  1. statistiques sur les appels à base de données
    Par garfieldcut dans le forum JDBC
    Réponses: 2
    Dernier message: 27/12/2006, 10h52
  2. statistique sur les virus
    Par lichman dans le forum Sécurité
    Réponses: 4
    Dernier message: 05/12/2006, 21h22
  3. statistique sur les différentes base d'un serveur Mysql
    Par flyingtomtom dans le forum Outils
    Réponses: 2
    Dernier message: 06/10/2006, 09h42
  4. Récupérer des informations sur les connexions réseau
    Par Leobaillard dans le forum Delphi
    Réponses: 8
    Dernier message: 31/08/2006, 01h20
  5. statistiques sur les lignes et colonnes d'un fichier
    Par ericbareke dans le forum Langage
    Réponses: 5
    Dernier message: 23/03/2006, 16h09

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