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 :

[ORACLE 10g] Droits en ligne sur une table


Sujet :

Oracle

  1. #1
    Membre averti Avatar de Cerberes
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2004
    Messages : 328
    Points : 338
    Points
    338
    Par défaut [ORACLE 10g] Droits en ligne sur une table
    Bonjour!

    Tout d'abord, merci de m'indiquer si c'est une question qui as déja été postée...

    Le problème que j'ai, pour la gestion des notes d'une école, est le suivant. J'ai une table TB_NOTE, dans laquelle les professeurs peuvent entrer des notes.
    Ce que j'aimerais faire: que le professeur qui à entrer ses notes ne puisse modifier et selectionner uniquement celles qui l'à entrer lui.
    Si ce n'est pas très clair, faites-le moi savoir.

    Ma proposition: Ajouter une colonne utilisateur dans la table, créer un trigger d'insertion insérant automatiquement le login de l'utilisateur dans cette colonne.
    Pour l'interface PHP (c'est un collègue qui s'en occupe), on s'arrangera pour que le select ne tombe que sur les lignes de l'utilisateur courant (select ... where utilisateur=user). Pour l'update, également, le même trigger (voir plus haut) bloquera les actions ou l'utilisateur tentera de modifier des lignes ou la colonne utilisateur est différente de son login.

    Maintenant, une question me trotte dans la tête... Je sais que plusieurs SGBD proposent une gestion de droits en ligne. Maintenant, la grande question: est-ce possible, sous Oracle, d'établir une gestion en ligne? A part avec mon procédé?

    Merci d'avance!

    [EDIT]
    Bien entendu, c'est une question téhorique, je pas encore créer le trigger. Il ne s'agit pas de code d'erreur ou quoi que ce sois.
    [/EDIT]

    [EDIT2]

    Mon dieu, j'avais pas taggé mon titre... sacrilège!
    [/EDIT2]

  2. #2
    Rédacteur

    Inscrit en
    Septembre 2004
    Messages
    626
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 626
    Points : 848
    Points
    848
    Par défaut
    Chaque professeur se connecte à Oracle avec son propre user Oracle ?

    Si c'est le cas, tu peux regarder du coté de FGAC (Fine-Grained Access Control).

    EDIT : tu peux chercher ay niveau de la doc sur DBMS_RLS (Row Level Security)


    Laly.

  3. #3
    Membre averti Avatar de Cerberes
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2004
    Messages : 328
    Points : 338
    Points
    338
    Par défaut
    Oui, chaque professeur à son login personnel.

    Ok, je vais jeter un coup d'oeil, j'édite ce post lorsque je trouve. Merci lalystar!

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Moi ce que j'avais fait aussi c'est :

    ajouter une colonne habilitation
    créer une variable d'environnement (en fait un package avec juste la variabl)
    une vue restreinte sur toutes les tables habilités WHERE habilitation = mon_pkg.lavarirable

    La variable étant valorisée par l'appli

    C'est le fonctionnement d'Oracle Application que j'ai pompé

  5. #5
    Membre averti Avatar de Cerberes
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2004
    Messages : 328
    Points : 338
    Points
    338
    Par défaut
    Pas bête!

    Après avoir un peu analyser tout ça, je pense rester à ma proposition (je me mouille pas trop ). En effet, c'est unt travail de diplôme, et par la même occasion un travail d'équipe... Alors je me mets d'accord avec mon collègue, il ajoutera une petite close WHERE dans le select de l'interface, et de mon côté, un trigger, l'ajout d'une colonne et le tour est joué.

    Qui plus est, je connais nettement mieux le principe que j'ai avancé. Alors le programme: analyser en détail les informations que j'ai pu trouver sur le package DBMS_RLS, mais en attendant, implémenter ce que j'ai cité plus haut. Comme ça, si je trouve un grand avantage au package par rapport à ma méthode, je pourrai toujours modifier mon dossier.

    En tout cas, merci beaucoup à vous deux pour vos propositions!

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

Discussions similaires

  1. [Oracle 10g] renumérotez les records d'une table
    Par awalter1 dans le forum Langage SQL
    Réponses: 8
    Dernier message: 29/03/2007, 13h48
  2. [Nombre maximum de lignes sur une table.]
    Par tesla dans le forum Oracle
    Réponses: 4
    Dernier message: 20/02/2007, 13h40
  3. [ASE][T-SQL]droits des user sur une table...
    Par arona dans le forum Sybase
    Réponses: 3
    Dernier message: 11/05/2006, 21h48
  4. Ordre de sélection des lignes sur une table DB2
    Par Pierre Formosa dans le forum DB2
    Réponses: 1
    Dernier message: 26/04/2006, 20h03
  5. Tester les droits en écriture sur une table en VBA ?
    Par yerome60 dans le forum Access
    Réponses: 2
    Dernier message: 19/12/2005, 21h43

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