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 :

Oracle 10g: grant select sur un schema?


Sujet :

Administration Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 51
    Par défaut Oracle 10g: grant select sur un schema?
    Bonjour.
    Ma base de données: 10.2.0.1.0
    Y a t'il une façon de donner à user1 le droit SELECT sur toutes les tables de user2?
    Je ne cherche pas à faire un script qui me construit un autre script contenant les commandes pour chaque table. Mais plutôt une commande à passer à l'installation du poste.
    Je voudrais que user1 puisse faire un select sur les "futures" tables de user2, c'est-à-dire des tables non encores créées lorsque je passe ma commande du grant.
    Pour l'instant je m'en sors avec (sous system):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    GRANT SELECT ANY TABLE TO user1
    Mais d'après ce que j'ai vu sur les forums, faut éviter.

    Sinon encore une question concernant les droits:
    sans donner le "grant select any table" au user1, j'ai le comportement suivant:
    je suis connectée sous user1.
    je fais à la ligne de commande un select sur la table user2.matable => ça marche
    j'exécute un bloc PL/SQL faisant la même chose => ça marche
    j'exécute une procédure faisant la même chose => je ne vois pas la table.
    J'avoue que je n'arrive pas à expliquer ça. Si quelqu'un a une idée.

    Merdi d'avance.

  2. #2
    Membre émérite Avatar de philcero
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Septembre 2007
    Messages
    528
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2007
    Messages : 528
    Par défaut
    Je voudrais que user1 puisse faire un select sur les "futures" tables de user2
    Je pense que ce n'est pas possible. Seule soluce, dans le cas de multiples bénéficiaires, leur attribuer un rôle et mettre à jour ce rôle au fur et à mesure de la création de nouveaux objets.
    j'exécute une procédure faisant la même chose => je ne vois pas la table.
    Les GRANTS ne sont pas hérités lors de l'exécution de procédures PL/SQL.

  3. #3
    Membre averti
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 51
    Par défaut
    Merci pour la rapidité!

    Pour le 1er point, je pensais bien que ce n'était pas possible. Dommage.

    Par contre, pour passer la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grant select on user2.matable to user1
    après la création de matable, forcément il faut être connecté user2.
    Mais je n'arrive pas à me connecter sous user2.
    En faut il faudrait que je le fasse dans une procédure de user1, mais ça ne marche pas, à la compilation le "connect user2/mdp ne passe pas.

    Je précise que je créé la table user2.matable dans une procédure de user1, via un import avec datapump en changeant le schéma par la commande REMAP_SCHEMA.

  4. #4
    Membre émérite Avatar de philcero
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Septembre 2007
    Messages
    528
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2007
    Messages : 528
    Par défaut
    après la création de matable, forcément il faut être connecté user2. Mais je n'arrive pas à me connecter sous user2.
    Ca s'appelle la sécurité !



    Peux-tu alimenter un peu plus s.v.p :
    1. Tu as un compte DBA sur la base ou tu n'est qu'invité ?
    2. Tu n'as pas ou bien tu as perdu le mot de passe de user2 ?

  5. #5
    Membre averti
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 51
    Par défaut
    A l'installation j'ai tous les droits que je veux puisque je suis mon propre DBA (enfin j'essaye )
    Pour faire tourner l'appli, je créé 2 utilisateurs:
    user1 : utilisateur de l'appli, donc tout le code s'exécute sous cette connexion
    user2 : juste pour pouvoir importer (par datapump) des tables.
    Ces 2 users sont créés avec les droits:
    connect, resource, exp_full_database, imp_full_database.

    Donc j'ai tous les mots de passe.

    En fait j'ai 2 machines distinctes, chacune avec sa base, chacune avec le même utilisateur user1.
    Je fais un export de tables de user1 sur la machine1.
    J'importe ces tables sur ma machine 2. Mais j'importe ces tables dans le schéma user2, puis je fais un select sur ces tables pour alimenter les tables de user1.

    Je suis obligée de faire ça, car lors de l'import, si j'ai bien compris, soit on écrase toute la table (option REPLACE), soit on ajoute les données non présentes et on ignore les autres (option APPEND). Alors que moi, je voudrais ajouter les nouvelles données et remplacer les données existantes.
    De plus il y a certaines tables sans clé unique, donc même avec une option en plus, ça ne le ferait pas.

  6. #6
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    http://asktom.oracle.com/pls/asktom/...D:646423863863

    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
    create or replace trigger do_grant
    after CREATE on schema
    declare
        l_str varchar2(255);
        l_job number;
    begin
        if ( ora_dict_obj_type = 'TABLE' )
        then
            l_str := 'execute immediate "grant select on ' ||
                                         ora_dict_obj_name ||
                                        ' to scott";';
            dbms_job.submit( l_job, replace(l_str,'"','''') );
        end if;
    end;
    /

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

Discussions similaires

  1. Grant SELECT sur de nombreux objets
    Par tck-lt dans le forum SQL
    Réponses: 4
    Dernier message: 07/07/2010, 15h45
  2. Réponses: 2
    Dernier message: 28/10/2009, 14h38
  3. GRANT select sur rôle
    Par pat29 dans le forum Administration
    Réponses: 3
    Dernier message: 20/05/2008, 13h36
  4. Oracle 10G et Linux sur portable ?
    Par davy.g dans le forum Oracle
    Réponses: 12
    Dernier message: 17/08/2006, 16h52
  5. [Oracle 10g]INSERT SELECT lent
    Par Giill dans le forum Oracle
    Réponses: 2
    Dernier message: 22/05/2006, 17h18

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