Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Outils > E-Business
E-Business Forum d'entraide sur Oracle E-Business
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/02/2007, 14h46   #1
Membre habitué
 
Inscription : janvier 2005
Messages : 129
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 129
Points : 101
Points : 101
Par défaut Créer un utilisateur APPS sous E Business Suite pour SELECT uniquement

Bonjour,

Sur un serveur E-Business Suite 11i, j'aimerai faire une petite modification.

Mon équipe se décompose de la manière suivante :

Je m'occupe de l'administration système (technique) et de la base de données. Mes collegues s'occupent de tout ce qui est fonctionnel/applicatif dans les modules d'Oracle Applications.

Bien souvent, le support Oracle nous demande de leur fournir des extractions SQL de données de la base pour résoudre certains bugs. Jusqu'ici mes collegues viennent me voir et me demande de leur extraire les données. Il n'ont pas les moyens de faire du SQL, et n'en n'ont pas les connaissances. C'est une situation voulue, seulement moi et mon chef sommes capables de modifier directement les données dans la base.

Cependant, ces extractions pour moi sont sans intérets, me dérangent un peu. J'estime qu'il est temps pour mes collegues de se mettre au SQL et de faire eux meme leurs extractions SQL (SELECT seulement).

J'aimerai donc leur donner un outil et les acces minimum (PRINCIPE OF LEAST PRIVILEGES) pour qu'ils se débrouillent seuls.

Sous la E-Business suite, les applications ansi que les extractions se font en se connectant a la base via l'utilisateur APPS. C'est un utilisateur qui possede pas mal de vue sur les autres objets de la base. 9 cas sur 10, les SELECT a faire sont des objets du schéma APPS.

Afin de confier donc ces responsabilités aux utilisateurs, je pense qu'il faut créer un autre utilisateur de base, sous lequel, mes collegues se connecterons via SQL Developer. J'attribuerai les privileges CREATE SESSION et SELECT ANY TABLE. Je pense que c'est la meilleure solution.

Qu'en pensez vous ?!
guigui_cwoco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2007, 15h36   #2
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
SELECT ANY TABLE constitue une faille de sécurité majeur. L'idéal c'est donc de créer un user APPS_READ avec le role CONNECT et sous APPS fait un GRANT SELECT TO APPS_READ pour chaque tables qui ne sont pas dans les shémas SYS et SYSTEM.

En PL/SQL, une boucle FOR et un EXECUTE IMMEDIATE te permettront de faire ça facilement
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2007, 16h02   #3
Membre habitué
 
Inscription : janvier 2005
Messages : 129
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 129
Points : 101
Points : 101
En quoi SELECT ANY TABLE constitue une faille de sécurité majeure ?
L'utilisateur ne peux que consulter les tables ... dans tous les schémas certes mais ... Peux tu m'en dires plus ?
guigui_cwoco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2007, 17h32   #4
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
il y a le password (encrypté mais c'est quand même problèmatique) dans DBA_USERS
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2007, 01h27   #5
Membre habitué
 
Inscription : janvier 2005
Messages : 129
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 129
Points : 101
Points : 101
Oui certes ...
Enfin ... Ca se décrypte facilement un mot de passe Oracle ?
guigui_cwoco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2007, 08h14   #6
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
non mais ça peut permettre de se connecter si on a le privilege alter user... évidemment je n'en dirais pas plus
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2007, 11h53   #7
Membre habitué
 
Inscription : janvier 2005
Messages : 129
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 129
Points : 101
Points : 101
Voui évidemment avec le privilege ALTER USER, c'est pas tres malin ...
Dans notre cas, l'utilisateur APPS_READ n'a que 2 privileges :

CREATE SESSION (pour se connecter, ca peut aider )
SELECT ANY TABLE (pour pouvoir intérroger la base)

D'autres avis ?!
guigui_cwoco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2007, 15h47   #8
Invité de passage
 
Inscription : mai 2003
Messages : 7
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 7
Points : 4
Points : 4
J'avais que ca a faire donc ..

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
 
StrligneCommande	VARCHAR2(255);
 
CURSOR CurAllTable IS
	SELECT table_name
	FROM ALL_ALL_TABLES
	WHERE owner  NOT LIKE '%SYS%';
	;
 
 
BEGIN
 
	FOR R0 IN CurAllTable 
	LOOP
 
	 StrLigneCommande := 'GRANT SELECT ON'|| R0.TABLE_NAME ||' TO APPS_READ';
  	 EXECUTE IMMEDIATE   StrLigneCommande ;
 
 
    END LOOP;
 
END;
Pas testé, ca devrai marcher si t'as pas de users qui contiennent 'SYS' dans leur nom ^^

Tu me payera un totem à la pirogue.
Noren est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2007, 11h21   #9
Nouveau Membre du Club
 
Inscription : juin 2007
Messages : 52
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : juin 2007
Messages : 52
Points : 37
Points : 37
Un petit UP ici :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
CREATE user apps_read IDENTIFIED BY manager account UNLOCK;
 
GRANT CREATE session TO APPS_READ;
 
REM SELECT 'grant ' || privilege || ' on ' || owner || '.' || table_name || ' to ' || 'APPS_READ;'
REM FROM dba_tab_privs
REM WHERE grantee = 'APPS'
REM AND privilege = 'SELECT'
REM AND NOT owner = 'SYS'
REM ad NOT owner = 'SYSTEM'
REM AND NOT owner = 'CTXSYS'
REM ORDER BY owner, table_name, privilege;
lapincretin est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h52.


 
 
 
 
Partenaires

Hébergement Web