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

SQL Firebird Discussion :

TRIGGER (ON CONNECT AS) pour protéger LA BD


Sujet :

SQL Firebird

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 182
    Points : 84
    Points
    84
    Par défaut TRIGGER (ON CONNECT AS) pour protéger LA BD
    salut j'ai utilise firebird 2.5.9

    je voulais d'éviter que sur une autre machine avec un autre Firebird/Interbase, n'importe qui arrive à ouvrir ma base de données avec le compte SYSDBA

    j'ai essayé de créer TRIGGER, mais cela n'a pas fonctionné
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    CREATE EXCEPTION EXCEPTION01 'Vous n''avez pas le droit d''accéder à cette base de données';
     
    CREATE TRIGGER  EXCEPTION01 ON CONNECT AS
    BEGIN
    IF (CURRENT_USER= 'SYSDBA') THEN EXCEPTION EXCEPTION02;
    END


    Je vois deux messages de erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Engine Error (code = 335544569):
    Dynamic SQL Error.
    SQL error code = -104.
    Unexpected end of command - line 3, column 44.
     
    SQL Error (code = -104):
    Invalid token.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Engine Error (code = 335544569):
    Dynamic SQL Error.
    SQL error code = -104.
    Token unknown - line 1, column 1.
    END.
     
    SQL Error (code = -104):
    Invalid token.
    Quelle est la solution de ce problème?
    Delphi installés : RAD Studio 10.4.1 ..........Programme VCL
    SGBD : Firebird 2.5
    générateurs Etats : FastReport, QuickReport
    OS : Window 10 64bit

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 041
    Points : 40 950
    Points
    40 950
    Billets dans le blog
    62
    Par défaut
    Bonsoir,

    juste en regardant j'y vois un défaut si execption01 est l'exeception à levée alors le trigger ne soit pas se nommer EXCEPITION01 mais

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE EXCEPTION EXCEPTION01 'Vous n''avez pas le droit d''accéder à cette base de données';
     
    CREATE TRIGGER  EXCEPTION02 ON CONNECT AS
    BEGIN
    IF (CURRENT_USER= 'SYSDBA') THEN EXCEPTION EXCEPTION01;
    END
    des noms plus explicites auraient empêché ce genre d'inversion
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 182
    Points : 84
    Points
    84
    Par défaut
    le méme problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Engine Error (code = 335544569):
    Dynamic SQL Error.
    SQL error code = -104.
    Unexpected end of command - line 3, column 44.
     
    SQL Error (code = -104):
    Invalid token.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Engine Error (code = 335544569):
    Dynamic SQL Error.
    SQL error code = -104.
    Token unknown - line 1, column 1.
    END.
     
    SQL Error (code = -104):
    Invalid token.
    Delphi installés : RAD Studio 10.4.1 ..........Programme VCL
    SGBD : Firebird 2.5
    générateurs Etats : FastReport, QuickReport
    OS : Window 10 64bit

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Février 2006
    Messages : 562
    Points : 859
    Points
    859
    Par défaut
    Bonsoir.

    Il vous manque la définition du terminateur de fin d'instruction. le fameux SET TERM.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SET TERM ^ ;
    CREATE TRIGGER  EXCEPTION02 ON CONNECT
    AS
    BEGIN
      IF (CURRENT_USER= 'SYSDBA') THEN
          EXCEPTION EXCEPTION01;
    END^
    SET TERM ; ^

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 041
    Points : 40 950
    Points
    40 950
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par ddaime Voir le message
    Il vous manque la définition du terminateur de fin d'instruction. le fameux SET TERM.
    Exact mais comme cela dépend de la manière (ISQL, GUI ....) dont sont passé ces commandes, je n'ai pas soulevé ce lièvre
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  6. #6
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 182
    Points : 84
    Points
    84
    Par défaut
    L'opération a réussi meeerci
    Delphi installés : RAD Studio 10.4.1 ..........Programme VCL
    SGBD : Firebird 2.5
    générateurs Etats : FastReport, QuickReport
    OS : Window 10 64bit

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 24/06/2019, 14h41
  2. Réponses: 61
    Dernier message: 29/12/2016, 12h58
  3. Aide pour protéger un logiciel creer par delphi
    Par osma_1978 dans le forum Delphi
    Réponses: 2
    Dernier message: 02/09/2006, 22h50
  4. [VB.NET] Connection valide pour tte l'appli
    Par Golzinne dans le forum Windows Forms
    Réponses: 5
    Dernier message: 11/05/2006, 18h40
  5. Réponses: 4
    Dernier message: 01/02/2006, 14h25

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