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 :

Connaître l'usager système connecter


Sujet :

MS SQL Server

  1. #1
    Membre averti
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juillet 2012
    Messages : 10
    Par défaut Connaître l'usager système connecter
    Bonjour,

    Est-ce qu'il y a possibilité d'avoir une table usager et lorsqu'un usager se connecte dans mon programme de passer l'information a SQL server pour par la suite créer des logs avec l'information de cette usager?

    Merci d'avance

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    Bonjour,

    Oui c'est bien sûr possible...
    Quel est précisément votre problème/difficulté ?

  3. #3
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    A priori un trigger de base sur la connexion devrait faire l'affaire, non ?

  4. #4
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2003
    Messages : 733
    Billets dans le blog
    8
    Par défaut
    Citation Envoyé par StringBuilder Voir le message
    A priori un trigger de base sur la connexion devrait faire l'affaire, non ?
    La réponse est Oui, si on se réfère aux connexions et sessions de points de l'instance SQL Server. Mais du point de vue métier (modèle), les "usagers" comme Mlle CHOule les a nommés, correspondent je crois (?) à des personnes physiques ou morales identifiées lors de l'authentification par l'application.

    Par ailleurs le pooling de connexions et l'uniformisation des chaines de connexions notamment pour les applications Web, fait que les "usagers" du point vue métier (modèle) ne correspondent que rarement, pour ne pas dire jamais, aux connexions telles quelles sont définies au niveau de l'instance et/ou aux utilisateurs de la base de données.

    A+

  5. #5
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Le titre parlant d'usager "système", j'en avait déduit que l'utilisateur était authentifié avec un compte "système" propre.

    Sinon, c'est juste un niveau de l'authentification "logicielle" qu'il faut rajouter un petit insert qui va bien...

  6. #6
    Membre averti
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juillet 2012
    Messages : 10
    Par défaut
    Citation Envoyé par hmira Voir le message
    La réponse est Oui, si on se réfère aux connexions et sessions de points de l'instance SQL Server. Mais du point de vue métier (modèle), les "usagers" comme Mlle CHOule les a nommés, correspondent je crois (?) à des personnes physiques ou morales identifiées lors de l'authentification par l'application.

    Par ailleurs le pooling de connexions et l'uniformisation des chaines de connexions notamment pour les applications Web, fait que les "usagers" du point vue métier (modèle) ne correspondent que rarement, pour ne pas dire jamais, aux connexions telles quelles sont définies au niveau de l'instance et/ou aux utilisateurs de la base de données.

    A+
    Bonjour, c'est exact je parle de personnes physiques.
    En fait, comme plusieurs personnes peuvent être connectés dans l'application (donc a la BD) en même temps je voudrais savoir si il est possible de connaître qu'elle usager (de ma table usager) a fait une modification ou un ajout et ce sans nécessairement ajouter un champ ID_Usager dans la table. Est-ce que je devrais avoir un champ dans ma table usager pour faire référence a un usager BD?

  7. #7
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Pour citer SQLpro :
    Les champs sont à la campagne et les colonnes dans l'étable les tables.
    Donc, deux solutions :
    - une colonne "modified_by" dans votre table, contenant l'id de la dernière personne qui a fait un update
    - une table "modification" contenant les colonnes user_id, modification_date, table_name, column_name, old_value, new_value

    Dans les deux cas, si possible alimentées par trigger.

    La table "modification", bien qu'elle puisse rapidement devenir mammouth, est plus souple à utiliser et permet de mieux tracer les actions des utilisateurs, mais aussi de revenir en arrière.

    Si elle est alimentée par ta couche dataaccess, tu peux éventuellement sérialiser en XML les colonnes "column_name" et "old/new_value", ce qui évitera de dupliquer les lignes lorsqu'on modifie plusieurs lignes, mais aussi rajouter d'autres informations propres aux contexte applicatif.

  8. #8
    Membre averti
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juillet 2012
    Messages : 10
    Par défaut
    je voudrais savoir si il est possible de connaître qu'elle usager (de ma table usager) a fait une modification ou un ajout et ce sans nécessairement ajouter une colonne ID_Usager dans la table modifiée
    Donc la réponse a ma première question est "Non".

  9. #9
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 999
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 999
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par CHoule Voir le message
    Donc la réponse a ma première question est "Non".
    La réponse est OUI si vous utilisez l'outil approprié qui est "DATABASE AUDIT".
    => CREATE SERVER AUDIT
    => CREATE DATABASE AUDIT SPECIFICATION

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. Comment lancer Kitchen.bat depuis un service windows sous l'usager système
    Par Jean-Philippe Shields dans le forum kettle/PDI
    Réponses: 1
    Dernier message: 22/06/2012, 17h20
  2. [SQLServer 2000] Connaître les applications se connectant
    Par J0r_x dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 01/12/2009, 12h27
  3. [Système]Connection réseau et mise à jour tables liées
    Par Ataturk dans le forum Sécurité
    Réponses: 7
    Dernier message: 23/03/2007, 09h00
  4. [Système] Savoir qui est connecté en ce moment
    Par sourivore dans le forum Langage
    Réponses: 13
    Dernier message: 12/06/2006, 17h05
  5. [Conception] Question sur un code permettant de connaître le nombre de connectés
    Par inferno66667 dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 19/12/2005, 19h49

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