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 :

Les privilèges des utilisateurs


Sujet :

Administration Oracle

  1. #1
    Membre régulier

    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2012
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Août 2012
    Messages : 70
    Points : 120
    Points
    120
    Par défaut Les privilèges des utilisateurs
    Bonjour
    j'ai crée un base des données , en suite j'ai crée un utilisateur avec la commande suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    create user utilisateur identified by motdepasse
    pour lui permettre de crée des tables j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grant create table to utilisateur
    maintenant, je n'ai pas su comment lui permettre de faire INSERT, SELECT, UPDATE, DELETE sur tous les tables qui va créer.
    j'ai chérché et j'ai trouvé cette commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grant INSERT ON <nomDeTable> to utilisateur
    mais ça m'obligera à reéxecuter un script après à chaque fois, que l'utilisateur crée une table
    que dois-je faire ?
    je veux faire queleque chose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grant insert on ANY table to utilisateur
    merci

  2. #2
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2007
    Messages
    43
    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 : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2007
    Messages : 43
    Points : 73
    Points
    73
    Par défaut
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    GRANT INSERT ANY TABLE TO username
    Sans le ON
    ça fonctionne mais n'est pas nécessairement une bonne pratique pour la maîtrise des permission sur ta base (politique du moindre privilège)

  3. #3
    Membre régulier

    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2012
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Août 2012
    Messages : 70
    Points : 120
    Points
    120
    Par défaut
    Citation Envoyé par j_f_b Voir le message
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    GRANT INSERT ANY TABLE TO username
    Sans le ON
    ça fonctionne mais n'est pas nécessairement une bonne pratique pour la maîtrise des permission sur ta base (politique du moindre privilège)
    D'abord merci de votre réponse.
    Est-ce que avec cette commande l'utilisateur peut modifier les tables des autres utilisateurs ?

  4. #4
    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 linux user Voir le message
    Est-ce que avec cette commande l'utilisateur peut modifier les tables des autres utilisateurs ?
    Affirmatif !
    Dans le contexte de la commande GRANT, ANY signifie "n'importe où dans la base", c'est à dire quel que soit le propriétaire de l'objet.
    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

  5. #5
    Membre régulier

    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2012
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Août 2012
    Messages : 70
    Points : 120
    Points
    120
    Par défaut
    Donc comment faire pour permettre à l'utilisateur de créer des tables comme il veut, et lui permettre de faire insert, update et select sur ceux

  6. #6
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2005
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2005
    Messages : 197
    Points : 591
    Points
    591
    Par défaut
    Un utilisateur à tous les droits sur ses tables puisqu'il en sera le propriétaire. C'est à dire que si votre utilisateur crée une table, il pourra faire des insert, update, select et delete sur les tables qu'il aura créer.

    La commande

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    GRANT INSERT ON <nomDeTable> TO utilisateur

    permet à votre utilisateur de donner le droit d'insérer des données dans votre table à un autre utilisateur.
    En règle général, il vaux mieux éviter de donner les droits ANY par mesure de sécurité.
    Oracle DBA OCM 11g, 12c
    OCP 11g, 12c
    OCE RAC, SQL

  7. #7
    Membre régulier

    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2012
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Août 2012
    Messages : 70
    Points : 120
    Points
    120
    Par défaut
    Citation Envoyé par IndianaAngus Voir le message
    Un utilisateur à tous les droits sur ses tables puisqu'il en sera le propriétaire. C'est à dire que si votre utilisateur crée une table, il pourra faire des insert, update, select et delete sur les tables qu'il aura créer.
    Non, ce n'est pas le cas, j'ai essayé

  8. #8
    Expert éminent
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 821
    Points : 6 443
    Points
    6 443
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Citation Envoyé par linux user Voir le message
    Non, ce n'est pas le cas, j'ai essayé
    On peut voir le test ? Car c'est exact, un utilisateur peut faire ce qu'il veut comme DML sur les tables dont il est owner. Et s'il n'a pas CREATE ANY TABLE il ne peut pas avoir créé des tables dont il n'est pas owner.

    S'il est le owner de sa table:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    grant create session,create table to USER1 identified by USER1;
    Grant succeeded.
    alter user USER1 quota unlimited on USERS;
    User altered.
    connect USER1/USER1@&_CONNECT_IDENTIFIER
    Connected.
    create table TEST ( dummy char );
    Table created.
    insert into TEST values('x');
    1 row created.
    S'il n'est pas le owner de sa table:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    create user USER2 identified by USER2;
    User created.
    grant create any table to USER1;
    Grant succeeded.
    connect USER1/USER1@&_CONNECT_IDENTIFIER
    Connected.
    create table USER2.TEST ( dummy char );
    Table created.
    insert into USER2.TEST values('x');
    insert into USER2.TEST values('x')
                      *
    ERROR at line 1:
    ORA-01031: insufficient privileges
    Par contre, s'il n'a pas de quota sur le tablespace, il peut créer une table, mais pas y mettre des données.

    Cordialement,
    Franck.
    Franck Pachot - Developer Advocate Yugabyte 🚀 Base de Données distribuée, open source, compatible PostgreSQL
    🗣 twitter: @FranckPachot - 📝 blog: blog.pachot.net - 🎧 podcast en français : https://anchor.fm/franckpachot

Discussions similaires

  1. Réponses: 13
    Dernier message: 02/12/2007, 11h39
  2. privilèges des utilisateurs sur postgresql
    Par naim1982 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 19/01/2007, 18h17
  3. Réponses: 3
    Dernier message: 13/04/2006, 13h08
  4. Agir à distance sur les processus des utilisateurs
    Par kuranes dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 11/10/2005, 10h18
  5. Gérer les droits des utilisateurs
    Par rsc dans le forum Langage
    Réponses: 6
    Dernier message: 22/08/2005, 20h57

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