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 :

Utilisateur BO et droits restreints .


Sujet :

Oracle

  1. #1
    Membre éclairé

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2003
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 701
    Points : 741
    Points
    741
    Billets dans le blog
    1
    Par défaut Utilisateur BO et droits restreints .
    Bonjour ,

    suite un audit BO , je me suis fait tapé sur les doigts ! :

    toutes les requêtes BO sont lancées par les propriétaires des tables .

    Le consultant m' a fait remarquer ( à juste titre d' ailleurs ) que je devais créer un utilisateur n' ayant que le droit SELECT sur les tables en question .

    désirant mettre en oeuvre cette solution je rencontre un léger souci :

    1) donner le droit select aux tables ne lui appartenant pas:
    pour ne pas me prendre la tête , je lui ai donné
    le privilége system "SELECT ANY TABLE "

    2) il faut créer un synoym identique au nom d' objet préfixé par
    son propriétaire pour cet utilisateur :

    cretate synonym user_bo.toto for owner.toto .

    alors voilà , avez-vous une idée , comment lancer cette commande
    en récursif en sachant qu' il y a plusieurs owner et chacun avec plusieurs tables ?

    Faites-vous aussi comme cela ?

    ( je suis surpris pour ma part que lorque bo génére ces requêtes , il ne préfixe pas les tables par leurs propriétaires ou alors j'ai raté quelque chose !!!)

    cdlt

  2. #2
    Nouveau Candidat au Club
    Inscrit en
    Mars 2004
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Utilisateur BO et droits restreints
    Bonjour,

    essaye donc de créer un synonym public;

    "create public synonym nom_table for user.nom_table ";

    et donner le droit de selection sur la nom_table;
    SGBD pour la vie

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2003
    Messages : 412
    Points : 1 326
    Points
    1 326
    Par défaut
    OULAAAA GRAVE ERREUR

    Il ne faut surtout pas donner le privilege SELECT ANY TABLE

    A partir du moment ou tu fais ca ton utilisateur est capable de faire des select sur toutes les tables du dictionnaire. DONC C'EST PIRE QUE AU DEBUT.

    Ensuite pour le synomym ça ne sert à rien de créer un synonym qui est préfixé par le nom du user. Car de toute façon tu seras quand meme obligé de préfixé le nom de la table du user distant lorsque tu y feras appel.

    Donc la meilleure solution pour toi

    Donner UNIQUEMENT le droit SELECT sur les tables d'un user distant (soit à la main soit avec le petit script suivant)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     set echo off
     set termout off
     set heading off
     set lines 180
     set pages 1000
     set feedback off
     spool c:\grant.sql
    select 'GRANT SELECT ON '||tname|| ' TO <ton USER>;'
    from tab
    where tabtype='TABLE';
    spool off
    Ensuite tu ouvres le fichier .sql généré tu nettoies le début et la fin et tu execute le script. (c'est un exemple.)

    Ensuite ton user sera alors capable de faire des select sur toutes les tables ou il aura des droits grace a une commande de type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT *
    FROM <nom user distant>.<nom table>

  4. #4
    Membre éclairé

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2003
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 701
    Points : 741
    Points
    741
    Billets dans le blog
    1
    Par défaut
    Je te remercie de ta réponse .

    si on utilise les synonymes , c' est justement pour éviter de devoir préfixer
    le nom du propriétaire devant la table , oracle a créé la notion de synonyme uniquement pour ça (ou presque ) .

    le select any table ne pose aucun pb , je ne vois pas ou est le pb si un utilisateur via bo ( et donc un univers ) a le droit de visualiser des tables
    systemes qui de toute façon ne sont pas visibles ds le schéma de l' univers .

    cdlt

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2003
    Messages : 412
    Points : 1 326
    Points
    1 326
    Par défaut
    Pour ce qui est des synonymes je suis tout à fait d'accord c moi qui avait mal lu la réponse.

    Par contre je te déconseille très fortement de laisse le privilege SELECT ANY TABLE car tu te feras encore plus taper les doigts, car avec ce privilege, et ce meme dans un univers, un utilisateur qui tenterai de se connecter sur sqlplus pourrais alors consulter toutes les informations de la base de données, d'ou une faille de sécurité monstrueuse.

    Vu que c'est pour cela que tu cherches à séparer le propriétaire des tables de celui qui les consulte, c'est peut etre pas le moment de lui donner les droits de regarder partout ailleur.

    La meilleure chose à faire en sécurité sur Oracle est de donner JUSTE les privilèges NECESSAIRE, donc dans ton cas le privilege SELECT ET SURTOUT PAS PLUS

  6. #6
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    493
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 493
    Points : 605
    Points
    605
    Par défaut
    tu te trompes

    (rmq : je ne connais pas la notion d'univers ...)

    accorde le SELECT ANY TABLE à un user non système et tu verras que tu peux alors visualiser les vues V$

    ouvrir une porte comme celle là est une brèche dans la sécurité ! et puisqu'on parlait d'audit, la remarque d'helyos semble être justifiée



    [/code]

  7. #7
    Membre éclairé

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2003
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 701
    Points : 741
    Points
    741
    Billets dans le blog
    1
    Par défaut
    Bon d' accord globalement mais :

    1) les utilisateurs BO n' ont pas de client oracle sur leur poste .
    2) je voulais surtout que cet utilisateur puisse faire uniquement des select


    mais svp , avez-vous une idée pour créer les synonymes , dois-je passer
    par une procédure pl/sql ou existe-t-il un moyen en sql ?
    ( je veux créer les synonymes que dans le schéma du user bo .)

    cordialement

  8. #8
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2003
    Messages : 412
    Points : 1 326
    Points
    1 326
    Par défaut
    Alors
    pour ce qui est des droits c'est quand meme une porte ouverte c'est pas parce qu'ils ont pas de poste client que ca sécurise ton appli.

    Ensuite pour ce qui est des synonymes tu vas reprendre mon script de tout à l'heure et remplacer la requete par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT 'create synonym '||table_name||' for '||owner||'.'||table_name||';'
    from all_tables
    where owner in &#40;'<user1>','<user2>','<user3>'&#41;;
    Ou user1 2 et 3 correspondent aux users qui ont donner les droits sur leur table.

  9. #9
    Membre éclairé

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2003
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 701
    Points : 741
    Points
    741
    Billets dans le blog
    1
    Par défaut

    ok , cela fonctionne , je pensais qu' il ne remplacerait pas deux fois
    la même variable par la même valeur .
    pendant que j' y suis , je lance aussi un grant select
    ( l' inconvénient est que seul le propriétaire des tables peut donner
    le droit select sur ses tables à moins qu' il existe un privilége system
    qui l' outrepasse que je pourrais donner à system )

    encore merci

    je vais me ralier à vos points de vue et supprimer le privilge systeme .

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

Discussions similaires

  1. Pas d'adresse IP pour utilisateur à droits restreints
    Par castorameur dans le forum Windows XP
    Réponses: 5
    Dernier message: 31/03/2011, 12h34
  2. Réponses: 20
    Dernier message: 29/02/2008, 23h17
  3. Réponses: 1
    Dernier message: 16/10/2006, 19h07
  4. Interface Utilisateur avec des droits
    Par Karibbean971 dans le forum Delphi
    Réponses: 5
    Dernier message: 18/09/2006, 17h30
  5. clic droit restreint
    Par PAUL87 dans le forum Access
    Réponses: 2
    Dernier message: 05/12/2005, 16h46

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