Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Débuter
Débuter Forum d'entraide pour débuter avec Oracle
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 03/03/2008, 18h01   #1
Invité de passage
 
Inscription : mars 2008
Messages : 2
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 2
Points : 0
Points : 0
Par défaut Gérer les droits sous Oracle

Bonjour a tous,

Etant débutant sous Oracle 10g XE, j'aurai une petite question.

Je suis entrain de réaliser une application java où les utilisateurs finaux doivent créer un compte (en spécifiant un login, password, ainsi que d'autres informations personnelles), puis ils devront se logger pour utiliser les fonctionnalités du programme.

Je souhaite que les infos qu'ils rentrent lors de la création du compte soient rangés dans une table de ma BDD. J'ai déja créer une fonction PL/SQL creer_compte et je sais comment y faire appel dans le code java.

Ma question est la suivante: Comment dois-je gérer les droits dans Oracle pour que lorsque un utilisateur rentre son login/mdp il puisse ensuite acceder aux fonctionnalités de l'appli (par exemple, possiblités de modifications de son profil, donc modification de la table "Profil"). Faut-il faire des manips sous l'outil d'administration d'Oracle ?

Autre question: Oracle doit etre installer sur une machine différente de celle où les utilisateurs finaux s'identifient. Est-ce-que du code java coté client suffit? (avec jdbc:oracle:thin:@127.0.0.1:1521:XE).

J'espere avoir été suffisament clair dans ma demande.

Merci
Guillaume_tel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2008, 18h23   #2
Membre Expert
 
Avatar de scheu
 
Inscription : juin 2007
Messages : 1 497
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 1 497
Points : 1 485
Points : 1 485
C'est souvent contraignant et fastidieux qu'un user d'une application corresponde à un user base de données (enfin cela reste mon avis)
C'est plus simple si chaque utilisateur de l'appli se connecte à la base avec le même compte base de données, qui lui peut avoir les droits de modifications dans les tables profil, ... etc
Exemple :
- 1 user bdd APPLI = schéma qui contient toutes les tables de ton appli (profil, etc ...)
- 1 user bdd UTILISATEUR à qui tu donnes une bonne fois pour toutes les droits de lecture et/ou de modification dans les tables que tu souhaites, par exemple :
Code :
GRANT SELECT,INSERT,UPDATE,DELETE ON APPLI.profil TO UTILISATEUR;
C'est sans doute mieux que la gestion des droits se fasse côté application, par exemple une table qui contient pour chaque utilisateur un flag 0 ou 1 selon qu'il peut modifier son profil
Car si tu gérais les droits de ton appli comme les droits oracle avec un user oracle par utilisateur réel, en gros l'utilisateur pourrait exécuter des requêtes comme "update profil ..." mais sans savoir s'il a bien les droits de modifier la table, tu serais donc obligé de récupérer éventuellement les messages d'erreur renvoyés par oracle, etc ... ce qui devient vite très contraignant
__________________
La théorie, c'est quand on sait tout mais que rien ne fonctionne.
La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/
scheu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2008, 18h39   #3
Expert Confirmé
 
Avatar de 7gyY9w1ZY6ySRgPeaefZ
 
Homme
dba
Inscription : juillet 2007
Messages : 2 523
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : dba

Informations forums :
Inscription : juillet 2007
Messages : 2 523
Points : 3 972
Points : 3 972
Je suis d'accord avec toi Scheu.

Je rajoute juste que j'ai vu une appli pour laquelle, un user applicatif = un user oracle.
Du coup, le dba a régulièrement a intervenir pour gérer les users, les créer, supprimer et autre... Ce qui ne me semble par être son rôle mais devrait incomber plus aux personnes qui supportent l'application, voir à un super utilisateur.

NOTE : je ne cherche pas à dire que c'est un boulot indigne d'un dba, je dis juste que je ne trouve pas ça logique, pas de contreverse.
7gyY9w1ZY6ySRgPeaefZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2008, 21h03   #4
Invité de passage
 
Inscription : mars 2008
Messages : 2
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 2
Points : 0
Points : 0
Tout d'abord, merci pour vos réponses.

Le truc, c'est que je dois gérer trois types d'utilisateurs différents (ils ont tous le droit de créer/modifier leurs profils, la différence se situe autre part). C'est pourquoi j'ai décidé de créer une table Type_Compte dans ma BDD, avec un ID qui vaut 1,2 ou 3 en fonction du type de compte.

Donc si j'ai bien compris, je vais dois créer trois utilisateurs en passant par le web browser oracle: administration --> Create Database User. Mais a ce moment là, il me demande un login, mdp, il me demande les roles (connect, resources, DBA, je coche donc connect) ainsi que les privilèges.

Mais je ne comprend pas ou je dois rentrer le code SQL "grant select,insert,update,delete on APPLI.profil TO UTILISATEUR;" ?

Que veux-tu dire par la: 1 user bdd APPLI = schéma qui contient toutes les tables de ton appli (profil, etc ...). Je ne comprend pas trop.

Merci encore!
Guillaume_tel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/03/2008, 22h59   #5
Membre actif
 
Avatar de kore62
 
Inscription : août 2007
Messages : 224
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : août 2007
Messages : 224
Points : 165
Points : 165
Considère qu'un user et un schéma... sont identiques

Un schéma est composé d'objets (tables, index, sequences, packags,etc...)

Le user est propriétaire des objets contenu dans son schéma....

Et pour finir, en général on confond un user et un schema...
En gros user et schema se confondent dans les appelations.

Exemple:

En gros tu peux dire que tu vas filer les droits au user 'TEST' ou au schema 'TEST' (C'est la meme chose)

J'espère que tu as compris où je voulais en venir
__________________
L'habitude est l'illusion d'un acquis imaginaire...

Mes Compos Ziks Electros:http://fishbone2k.free.fr/technorulez/news.php?id=89
kore62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h20.


 
 
 
 
Partenaires

Hébergement Web