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

Administration Oracle Discussion :

Droit Utilisateur Acces Lecture Seule


Sujet :

Administration Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 18
    Points : 14
    Points
    14
    Par défaut Droit Utilisateur Acces Lecture Seule
    Bonjour,
    je travaille sur une base 8i et/ou 9i qui dispose d'une base de donnée utilisée par une application que je n'ai pas développée.
    La base de donnée est crée a partir de scripts donnés par le fournisseur.

    Les scripts créent 2 utilisateurs OPS$ASY et ROOT qui ont les même droit sur la base. Le propriétaire de la bases et des tables qu'elle contient est OPS$ASY.

    La table TABLE_PRIVILEGES me donne une ligne de ce type :
    GRANTEE | OWNER | TABLE_NAME | GRANTOR | S | I | D | U | R | A | I |
    PUBLIC | OPS$ASY | UNCMPTAB | OPS$ASY | Y | N | N | N | A | N | N |

    Lorsque je crée un nouvel utilisateur avec juste un droit système CREATE SESSION et que je me connecte avec sur la base, j'ai quasiement tous les droit sur les tables... comme l'insertion... Or si je ne me trompe pas, d'après le tableau ci-dessus je ne dois pas avoir ce droit...
    Ce que je ne comprend pas c'est comment un utilisateur qui un simple droit de créer une session peut écrire dans une table qui ne lui appartient pas...?

    Comment faire un utilisateur lecture seul sur un simple objet dans ces conditions...?

    Merci

  2. #2
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    La table que vous citez n'est pas un table ou vue standard Oracle.
    Pour afficher les privilèges donnés directement sur un objet à un utilisateur,
    il faut utiliser:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM dba_tab_privs WHERE grantee=<utilisateur>;
    Voir aussi pour les rôles: http://oracle.developpez.com/guide/a...tion/adminrole

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    Merci de votre réponse...

    Toutefois, la table que je donne est une vue officielle d'oracle comme semble le montrer cette doc :
    http://saturn.uab.es/server.920/a96536/ch2457.htm

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT * FROM dba_tab_privs WHERE grantee='impot';
    no rows selected
    Pourtant mon utilisateur 'impot' peut écrire dans la table donnée en exemple dans mon premier message.

    Concernant votre lien je l'ai déjà lu, comme j'ai lu beaucoup d'autre doc...
    Mais mon problème c'est que je peux déjà tout faire avec l'utilisateur 'impot' alors que je ne lui ai donnée que le 'CREATE SESSION' pour se connecter.

    En fait je veux juste un utilisateur pour un script perl qui se connecte à une VUE et fait un SELECT deçu c'est tout.
    Mais lorsque je crée un simple utilisateur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     CREATE USER impot IDENTIFIED BY impot;
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     GRANT create session TO impot;
    dès que je me connect je peux écrire et lire dans les tables... de 'OPS$ASY' alors que je n'ai que le privilège pour 'impot' :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SQL> SELECT * FROM session_privs;
     
    PRIVILEGE
    ----------------------------------------
    CREATE SESSION
    Je suppose qu'il y a un truc qui m'échappe et qui donne des droits sans que je le sache... Cela vient-il du PUBLIC dans le champs grantee de la vue TABLE_PRIVILEGES

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Salut,

    J'ai le même problème.
    Je créé un user de la sorte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    create user user1 identified by motdepasse;
    J'y affecte les role connect :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grant connect to user1;
    Puis un petit quota :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alter user user1 quota unlimited on tablespace1;
    Quand je me connecte avec ce user => Je peux créer, insérer, deleter, dropper, etc...
    ?????? Je ne comprends pas bien ????

  5. #5
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    Dans Oracle 9, le rôle CONNECT permet de créer des objets et de faire du DML sur ces objets:

    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
     
    select * from dba_sys_privs where grantee='CONNECT';
     
    GRANTEE                        PRIVILEGE                                ADM
    ------------------------------ ---------------------------------------- ---
    CONNECT                        CREATE VIEW                              NO
    CONNECT                        CREATE TABLE                             NO
    CONNECT                        ALTER SESSION                            NO
    CONNECT                        CREATE CLUSTER                           NO
    CONNECT                        CREATE SESSION                           NO
    CONNECT                        CREATE SYNONYM                           NO
    CONNECT                        CREATE SEQUENCE                          NO
    CONNECT                        CREATE DATABASE LINK                     NO
     
    8 rows selected.
    Mais ce n'est plus vrai avec Oracle 10.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    Bonsoir lamarre,
    c'est normale que tu aies ce comportement, car le droit que tu accordes est : connect. Connect est un role qui comprend plusieurs droits système que sont :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE SESSION
    ALTER SESSION
    CREATE TABLE
    CREATE CLUSTER
    CREATE SYNONYM
    CREATE VIEW
    CREATE SEQUENCE
    CREATE DATABASE LINK
    En ce qui me concerne, je n'ai que le droit CREATE SESSION aucun autre...

    Pour voir la liste de tes droits fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM session_privs;
    avec ton nouvel utilisateur

  7. #7
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    Citation Envoyé par air_v
    Merci de votre réponse...

    Toutefois, la table que je donne est une vue officielle d'oracle comme semble le montrer cette doc :
    http://saturn.uab.es/server.920/a96536/ch2457.htm
    En effet, je ne connaissais pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT * FROM dba_tab_privs WHERE grantee='impot';
    no rows selected
    Pourtant mon utilisateur 'impot' peut écrire dans la table donnée en exemple dans mon premier message.
    Il faut écrire en général le nom de l'utilisateur en majuscules.


    Concernant votre lien je l'ai déjà lu, comme j'ai lu beaucoup d'autre doc...
    Mais mon problème c'est que je peux déjà tout faire avec l'utilisateur 'impot' alors que je ne lui ai donnée que le 'CREATE SESSION' pour se connecter.

    En fait je veux juste un utilisateur pour un script perl qui se connecte à une VUE et fait un SELECT deçu c'est tout.
    Mais lorsque je crée un simple utilisateur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     CREATE USER impot IDENTIFIED BY impot;
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     GRANT create session TO impot;
    dès que je me connect je peux écrire et lire dans les tables... de 'OPS$ASY' alors que je n'ai que le privilège pour 'impot' :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SQL> SELECT * FROM session_privs;
     
    PRIVILEGE
    ----------------------------------------
    CREATE SESSION
    Je suppose qu'il y a un truc qui m'échappe et qui donne des droits sans que je le sache... Cela vient-il du PUBLIC dans le champs grantee de la vue TABLE_PRIVILEGES
    Oui c'est possible.
    Que donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select grantee, table_name, privilege from dba_tab_privs where grantee='PUBLIC' and owner <> 'SYS'

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Oui, j'ai bien compris et c'est bien le roleCONNECT que je veux mettre (avec la liste des 8 privileges cités par pifor).
    Mais ce role CONNECT ne comprend pas par exemple DROP ANY TABLE.
    Or avec mon user, je peux faire un drop de table ... ???? Ce qui ne parait pas normal.

  9. #9
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    Si la table appartient à l'utilisateur connecté, il peut supprimer la table.
    Le privilège CREATE TABLE donne automatiquement le droit de faire DROP TABLE car le privilège DROP TABLE n'existe pas.

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Ok, merci Pifor pour la réponse à ma question.
    Désolé air_v d'être intervenu dans ton topic... auquel je n'ai pas la réponse...
    A+

Discussions similaires

  1. Pb droits admin + fichiers lecture seule
    Par Galevsky dans le forum Windows Vista
    Réponses: 4
    Dernier message: 18/04/2008, 20h28
  2. Droit d'accès d'un utilisateur suivant un mot de passe
    Par Tiroy dans le forum Sécurité
    Réponses: 1
    Dernier message: 12/12/2006, 16h30
  3. [Sécurité] droit d'accès en lecture
    Par hush dans le forum Applets
    Réponses: 3
    Dernier message: 24/07/2006, 12h38
  4. Problème de limitation en accès en lecture seule avec ma clé usb
    Par evangeliste dans le forum Administration système
    Réponses: 15
    Dernier message: 10/07/2006, 16h57
  5. Limite utilisateur en lecture seule
    Par LeScandinave dans le forum Access
    Réponses: 2
    Dernier message: 08/03/2006, 10h47

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