Bonjour,
Voici une petite description de ma situation. J’utilise actuellement une base de données Oracle 10g qui a un user APPLI2006. Ce dernier contient des tables, des vues, des fonctions, etc. Il a également tous les droits (ex il a les droits DBA), je sais que c’est mal mais j’en ai hérité en l’état.

Aujourd’hui, un développeur est venu me voir pour avoir les identifiants du user APPLI2006 car il doit développer une petite application. J’aimerai bien lui créer un user spécifique pour son application et ne pas lui donner celui de APPLI2006 (ça reviendrait à lui donner les droits DBA et je ne pense pas que ce soit une bonne pratique).

Voici ce que j’ai fait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
CREATE USER EDI2014
  IDENTIFIED BY "xxxx"
  DEFAULT TABLESPACE APPLI_DATA
  TEMPORARY TABLESPACE TEMP
  PROFILE DEFAULT
  ACCOUNT UNLOCK;
GRANT CREATE SESSION TO EDI2014 ;
GRANT SELECT ON APPLI2006.table1 TO EDI2014 ;
GRANT SELECT ON APPLI2006.table2 TO EDI2014 ;
GRANT SELECT ON APPLI2006.table3 TO EDI2014 ;
Il peut maintenant se connecter avec le user EDI2014 et faire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
select * from APPLI2006.table1
Pouvez-vous me dire si c’est la bonne approche ? sinon comment faire autrement ?
Comment le user EDI2014 peut appeler des fonctions de APPLI2006 ?
Par exemple la requête suivante ne fonctionne pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
select GET_NOM_CLIENT(t1.id_client) from APPLI2006.table1 t1
Ma fonction est la suivante
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
CREATE OR REPLACE FUNCTION APPLI2006."GET_NOM_CLIENT" (_id_client NUMBER)
RETURN VARCHAR2
IS
   tmpvar   VARCHAR2 (40);
BEGIN
   SELECT nom
   INTO tmpvar
   FROM table3
   WHERE id_client = _id_client;
 
    RETURN tmpvar;
EXCEPTION
   WHEN NO_DATA_FOUND
   THEN
      RETURN NULL;
   WHEN OTHERS
   THEN
   RAISE;
END GET_NOM_CLIENT;
/
Pouvez-vous m'aider ?

Merci d'avance
PoichOU