Oracle User

Résolu
termgsi Messages postés 678 Date d'inscription   Statut Membre Dernière intervention   -  
termgsi Messages postés 678 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Voilà mon problème j'ai crée toutes mes tables à l'aide d'un utilisateur mais quand je crée un nouvelle utilisateur Oracle que les tables n'existent pas .

Merci d'avance.

2 réponses

  1. jee pee Messages postés 31975 Date d'inscription   Statut Modérateur Dernière intervention   10 011
     
    Bonjour,

    Pour que les tables d'un utilisateur soient visibles par les autres, il faut explicitement l'autoriser.

    Cela s'effectue via la commande grant, et revoke pour enlever ces mêmes droits : https://www.techonthenet.com/oracle/grant_revoke.php

    par exemple :

    grant select on table1 to user2;

    grant all on table1 to user2;

    Après pour utiliser ces tables, si elles appartiennent à l'utilisateur user1, user2 devra utiliser une syntaxe de ce type :

    select * from user1.table1 ;

    Et pour une autorisation à tous les utilisateurs :

    grant all on table1 to public ;

    cdlt

    Un étranger, c'est un ami qu'on n'a pas encore rencontré.
    1
  2. termgsi Messages postés 678 Date d'inscription   Statut Membre Dernière intervention   39
     
    Enter user-name: alex => Celui qui a crée les tables
    Enter password: *******
    Connected.

    SQL> Grant Connect,resource, dba
    2 To Lambda;

    Grant succeeded.

    SQL> Grant all
    2 On Cheval
    3 To Lambda;

    Grant succeeded.

    SQL> connect
    Enter user-name: Lambda => Celui que veut y avoir accès
    Enter password: *******
    Connected.

    SQL> select * from cheval;
    select * from cheval
    *
    ERROR at line 1:
    ORA-00942: table or view does not exist

    Voilà j'ai toujours fait comme ce là.
    0
    1. jee pee Messages postés 31975 Date d'inscription   Statut Modérateur Dernière intervention   10 011
       
      Bah non si les tables appartiennent à un autre user il faut faire :

      select * from alex.cheval;

      Puisque lambda pourrait aussi avoir sur son compte une table qui s'appelle cheval et qui serait différente de celle d'alex.
      0
    2. termgsi Messages postés 678 Date d'inscription   Statut Membre Dernière intervention   39
       
      Merci dans ce cas sa fonctionne, si dans le cas où je les aurai rajouté à mon tablespace et qu'il s auraient crée des tables, ils auraient pu tous les 2 accès aux tables sans sans avoir à mettre X.cheval ?
      0
    3. jee pee Messages postés 31975 Date d'inscription   Statut Modérateur Dernière intervention   10 011
       
      Non. Il n'y a pas de rapport avec le tablespace où est stockée la table. Ce qui prime c'est le user (schéma) propriétaire de la table.
      0
    4. DROE Messages postés 148 Date d'inscription   Statut Membre Dernière intervention   48
       
      Hello,
      sinon pour éviter le pré-fixage dans les requêtes avec le nom de son propriétaire, un synonyme public serait le bienvenue

      SQL> CREATE OR REPLACE PUBLIC SYNONYM table_1 FOR ALEX.table_1;
      SQL> CREATE OR REPLACE PUBLIC SYNONYM table_2 FOR ALEX.table_2;

      http://www.dba-ora.fr/article-creer-ou-supprimer-un-synonyme-oracle-46440354.html
      0
    5. termgsi Messages postés 678 Date d'inscription   Statut Membre Dernière intervention   39
       
      Ok merci je vais testé ceci
      0