|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mars 2008 Messages : 2 ![]() |
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 |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 1 497 ![]() |
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; 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/ |
|
|
00
|
|
|
#3 |
|
Expert Confirmé
![]() dba Inscription : juillet 2007 Messages : 2 523 ![]() |
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. |
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : mars 2008 Messages : 2 ![]() |
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! |
|
|
00
|
|
|
#5 |
|
Membre actif
![]() Inscription : août 2007 Messages : 224 ![]() |
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 |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com