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 :

Problème avec la commande revoke sous oracle


Sujet :

Oracle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 157
    Points : 69
    Points
    69
    Par défaut Problème avec la commande revoke sous oracle
    Salut à tous !! Je voudrais savoir comment faire pour utiliser correctement la commande revoke sous oracle. En effet, quand je me connecte sous le compte "system", je tape la commande suivante :

    revoke insert on agent from producteur;

    Et là il m'affiche : ORA-01927: impossible REVOQUER privilèges non accordés.

    Comment faire pour avoir les privilèges sur le revoke ?

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    c'est écrit clairement pourtant... tu ne peux pas révoquer de droit qu'il n'a pas

  3. #3
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    Bonjour ,

    SI tu vérifie dans la table DBA_TAB_PRIVS, tu verras que le privilége n'a pas été accordé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM DBA_TAB_PRIVS

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 157
    Points : 69
    Points
    69
    Par défaut
    Ok merci !! Au départ je pensais que tous les droits étaient accordés d'office ...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 157
    Points : 69
    Points
    69
    Par défaut
    Je rencontre un autre problème. Quand je me connecte sous "system", je fais bien un grant insert on agent to producteur, puis mon revoke insert on agent from producteur. Par contre quand je me connecte sous "producteur", je peux quand même faire mes insert. Même avec le commit ca marche pas.

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    producteur ne serait pas le owner de la table par hasard ?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 157
    Points : 69
    Points
    69
    Par défaut
    Ben non, j'ai créé mes tables sous le compte "system". Quand j'ai créé mon utilisateur "producteur", j'ai mis quota unlimited on system pour recréer ma table, sinon il me mettait "pas de privilèges sur le tablespace system". C'est peut etre pour ça aussi ...

    Autrement, quand je me connecte sous "Producteur", je tape comme chaine hote le nom "oracle" que j'ai spécifié lors de mon installation. Et la, quand je fais un "select * from tab;" je ne vois aucune table.

  8. #8
    j6m
    j6m est déconnecté
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 87
    Points : 84
    Points
    84
    Par défaut
    il faut réisntaller Windows
    quand la pierre tombe sur l’œuf, malheur à l’œuf
    quand l’œuf tombe sur la pierre, malheur à l’œuf

  9. #9
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 074
    Points
    8 074
    Par défaut
    Citation Envoyé par j6m
    il faut réisntaller Windows
    En version chinoise, sans doute ?
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2006
    Messages : 133
    Points : 165
    Points
    165
    Par défaut
    Quels sont les rôles que tu as accordé à Procduteur ???

    Sous system/XXX@base :

    select * from dba_role_privs where grantee='PRODUCTEUR';

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 157
    Points : 69
    Points
    69
    Par défaut
    Justement là je viens de créer un rôle "production" que j'ai affecté à "producteur". Je viens de lui attribuer les droits de création des tables. Et quand je me connecte sous "producteur", et que je veux créer une table, il me met : "ORA-01950: pas de privilèges sur le tablespace 'SYSTEM'".

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    il faut ajouter un quota

    ou plutôt changer le tablespace de la table parce que SYSTEM c'est pas terrible

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 157
    Points : 69
    Points
    69
    Par défaut
    Le truc, c'est que initialement, j'avais mis quota unlimited. Je voudrais que "producteur" puisse seulement consulter les données de la table. Ensuite, j'avais fait un grant insert on agent to producteur, puis un revoke insert on agent from producteur. Et après, quand je me connectais sous "producteur", je pouvais toujours faire mes insert. Ainsi donc ça viendrait du tablespace ?

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 157
    Points : 69
    Points
    69
    Par défaut
    J'ai créé un tablespace cinema, puis j'ai fait un "alter user producteur default tablespace cinema", j'ai accordé les droits de connexion et de création de tables a "producteur", j'ai fait un commit et ça marche toujours pas ... Comment faire pour accorder a "producteur" le droit de créer des tables dans le tablespace "cinema" ??

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 157
    Points : 69
    Points
    69
    Par défaut
    Et quand je me connecte sous "producteur", est-ce normal que je n'aie pas accès aux tables du tablespace "cinema" ??

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 157
    Points : 69
    Points
    69
    Par défaut
    Je me suis remis en quota unlimited pour pouvoir créer mes tables, et insérer les données déjà présentes. Maintenant, je voudrais interdire a "producteur" d'insérer des nouvelles données, de modifier ou de supprimer des données existantes. Ce que je n'arrivais pas a faire a l'origine.

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 157
    Points : 69
    Points
    69
    Par défaut
    Mais le fait de se mettre en quota unlimited a-t-il une incidence sur l'attribution de privilèges ??

  18. #18
    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
    Il ne faut pas confondre le privilège QUOTA sur un tablespace
    et le fait de pouvoir créer ou lire des tables dans un schéma.

    On donne des quotas sur un tablespace à un schéma/utilisateur avec
    CREATE USER/ALTER USER. Pour créer une table dans un schéma,
    il faut:
    1. avoir des quotas dans le tablespace associé au schéma
    2. que le compte du schéma ait le privilège CREATE TABLE (ou le role RESOURCE).

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 157
    Points : 69
    Points
    69
    Par défaut
    Justement, j'ai fait un grant create table to producteur, et quand je me connecte sous "producteur" je n'arrivais pas a créer mes tables. Je me suis donc mis en quota unlimited.

  20. #20
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2006
    Messages : 133
    Points : 165
    Points
    165
    Par défaut
    Un exemple :
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    create tablespace TBS_TEST datafile 'C:\TBS_TEST.DBF' 
    size 10M autoextend on next 1M maxsize unlimited;
    create user test identified by test;
    GRANT CONNECT ,RESOURCE TO TEST;
    ALTER USER  TEST DEFAULT TABLESPACE TBS_TEST temporary tablespace TEMP;
    DEFAULT ROLE ALL;
    conn system/XX@test2
    select * from dba_role_privs where grantee='TEST';
    GRANTEE  GRANTED_ROLE  ADM   DEF
    ------------------------------ -----
    TEST       CONNECT          NO  YES
    TEST       RESOURCE         NO  YES
    select * from dba_sys_privs where grantee='TEST';
    GRANTEE   PRIVILEGE                    ADM
    ---------------------------------------
    TEST        UNLIMITED TABLESPACE  NO
     ==> NB : grant resource donne les grant unlimited TBS ...
    SELECT * FROM DBA_TAB_PRIVS where grantee='TEST';
    aucune ligne sélectionnée
     
    create user test2 identified by test2;
    GRANT CONNECT ,RESOURCE TO test2;
    create tablespace TBS_TEST2 datafile 'C:\TBS_TEST2.DBF' 
    size 10M autoextend on next 1M maxsize unlimited;
    ALTER USER  TEST2 DEFAULT TABLESPACE TBS_TEST2  temporary tablespace TEMP;
    DEFAULT ROLE ALL;
     
    conn test2/test2@test2
    create table tab (n number);
    insert into tab values (1);
    1 ligne créée.
    commit;
    grant select on tab to test;
    conn system/XX@test2
    select * FROM DBA_TAB_PRIVS where grantee='TEST';
    GRANTEE   OWNER  TABLE_NAME GRANTOR PRIVILEGE   
    --------------------------------------------------- 
    TEST         TEST2   TAB            TEST2    SELECT      
     
    conn test/test@test2
    select count(*) from test2.tab;
    ==> 1
    delete from  test2.tab;
    ERREUR à la ligne 1 :
    ORA-01031: privilèges insuffisants
     
    conn test2/test2@test2
    grant delete on tab to test;
    conn test/test@test2
    delete from  test2.tab;
    1 ligne supprimée.
    commit;
    conn test2/test2@test2
    revoke delete from tab to test;
    SQL>  revoke delete on tab from test;
    conn test/test@test2
    delete from  test2.tab;
    ERREUR à la ligne 1 :
    ORA-01031: privilèges insuffisants
    Editer par bouyao :

Discussions similaires

  1. Problème avec la commande LS sous Hadoop
    Par yimson dans le forum Big Data
    Réponses: 1
    Dernier message: 30/01/2015, 18h49
  2. Réponses: 8
    Dernier message: 14/09/2011, 12h01
  3. Problème avec une fonction MERGE sous oracle
    Par coulpie_myri dans le forum Oracle
    Réponses: 2
    Dernier message: 28/05/2010, 20h46
  4. Problème avec le type "LONG" sous Oracle 10g
    Par th.garcia dans le forum Oracle
    Réponses: 3
    Dernier message: 19/06/2009, 12h57
  5. Réponses: 1
    Dernier message: 16/05/2008, 08h23

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