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 31892 Date d'inscription   Statut Modérateur Dernière intervention   9 984
     
    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 31892 Date d'inscription   Statut Modérateur Dernière intervention   9 984
       
      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 31892 Date d'inscription   Statut Modérateur Dernière intervention   9 984
       
      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