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

Oracle Discussion :

déconnecter un utilisateur


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de soad
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    520
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2004
    Messages : 520
    Par défaut déconnecter un utilisateur
    Hello...

    Nous cherchons a faire une petite blague à notre patrons, on cherche une commande qu'on placerai dans un trigger "after logon" pour déconnecter un utilisateur de la base de donnée..

    Est ce que quelqu'un connait cette commande ?

    Merci d'avance

  2. #2
    Membre éclairé

    Inscrit en
    Septembre 2003
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 425
    Par défaut
    Citation Envoyé par soad
    Nous cherchons a faire une petite blague à notre patron
    J'aime les blagues mais il faut qu'il soit la seule personne à utiliser ce user sinon tous seront déconnectés

    En gros cela fera

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    CREATE OR REPLACE TRIGGER TG_BOSS_JOKE
    LOGON ON DATABASE
    declare
    vjob     integer;
    vsession v$session%rowtype;
    begin
    if USER = 'BOSS' then
       SELECT *
       into vsession
       FROM v$session WHERE audsid = USERENV('sessionid');
       execute immediate('ALTER SYSTEM KILL SESSION '''||vsession.sid||','||vsession.serial# || ''';');
    end if;
    end;
    /
    Vérifiez le code on sait jamais

  3. #3
    Membre confirmé Avatar de ehmppowa
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 114
    Par défaut
    Je suis avec SOAD..

    Ca me retourne cette erreur ci (on a un peu changer el code):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    CREATE OR REPLACE TRIGGER TG_BOSS_JOKE
    AFTER LOGON ON DATABASE
    declare
    vsession v$session%rowtype;
    begin
       SELECT *
       into vsession
       FROM v$session WHERE OSUSER = 'pch1';
       execute immediate('ALTER SYSTEM KILL SESSION '''||vsession.sid||','||vsession.serial# || ''';');
    end;
     
    Warning: Trigger created with compilation errors

  4. #4
    Membre éclairé

    Inscrit en
    Septembre 2003
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 425
    Par défaut
    Attention vot' blague peux tourner au vinaigre :

    1) il faut les droits sur v$session
    2) ajoutez une gestion d'erreur
    3) sortez du code le plus vite possible si c'est pas 'pch1' qui est connecté sinon vous allez avoir des erreurs à chaque connection à la base.


    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
    CREATE OR REPLACE TRIGGER TG_BOSS_JOKE
    AFTER LOGON ON DATABASE
    declare
    vsid number(15);
    vserial# number(15);
    begin
       SELECT sid, serial#
       into vsid ,vserial#
       FROM v$session WHERE OSUSER = 'pch1';
       execute immediate('ALTER SYSTEM KILL SESSION '''||vsid||','||vserial# || ''';');
      exception
      when others then
      null;
    end;
    /
    show error
    La commande show error permet d'avoir des infos sur les erreurs rencontré lors de la créatin du triggers, merci d'indiqué l'erreur lors de vos prochain message

  5. #5
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    RAISE_APPLICATION_ERROR suffirait pour annuler le LOGON

  6. #6
    Membre éclairé

    Inscrit en
    Septembre 2003
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 425
    Par défaut
    Citation Envoyé par Fred_D
    RAISE_APPLICATION_ERROR suffirait pour annuler le LOGON
    Dans le style
    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
    CREATE OR REPLACE TRIGGER TG_BOSS_JOKE
    AFTER LOGON ON DATABASE
    declare
    vsid number(15);
    vserial# number(15);
    begin
       SELECT count(*)  into vsid 
       FROM v$session WHERE OSUSER = 'pch1';
       if vsid > 0 then
          raise_application_error (-20000,'Au revoir Président !');
       end if;
      exception
      when others then
      null;
    end;
    /
    show error
    Ca vas supprimer la session etc ... Trop bien ca !

  7. #7
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    yep

Discussions similaires

  1. Comment faire déconnecter les utilisateurs d'une base
    Par ENIT-Info dans le forum Access
    Réponses: 23
    Dernier message: 28/02/2017, 14h57
  2. Shell script déconnecter un utilisateur ?
    Par damien27000 dans le forum Linux
    Réponses: 6
    Dernier message: 27/07/2007, 17h10
  3. Réponses: 3
    Dernier message: 02/04/2007, 17h05
  4. [SQL-SERVER] "Déconnecter" les utilisateurs d'une
    Par Sytchev3 dans le forum MS SQL Server
    Réponses: 13
    Dernier message: 18/07/2006, 11h30

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