Création d’un user avec des droits restreints
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:
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:
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:
select GET_NOM_CLIENT(t1.id_client) from APPLI2006.table1 t1
Ma fonction est la suivante
Code:
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