Probleme en java

[Fermé]
Signaler
Messages postés
10
Date d'inscription
mercredi 10 septembre 2008
Statut
Membre
Dernière intervention
13 septembre 2008
-
Messages postés
1
Date d'inscription
jeudi 11 septembre 2008
Statut
Membre
Dernière intervention
16 septembre 2008
-
Bonjour,

bonjour tout le monde je suis débutante et je veux réaliser un projet en java en utilisant netbeans !
ben il m'arrive de desinner mes interfaces dans lesquelle il y a des chams à remplir par les utilisateurs,et qui ont enregestrer dans une base de donnée oracle.mais le problème c'est que je veux que chaque utisation soit identifier par un numéro qui est le numéro de ligne de tableau où j'ai mis mes données ie automatiquement. que me conseillez vous ?
merci d'avance pour votre aide

2 réponses

Est-ce que tu peux mieux décrire ton application ? Que doit ou que peut faire chaque type d'utilisateur ? Ont-ils tous accès à la même interface, avec la possibilité (ou non) d'écrire dans telle ou telle ligne ou colonne ?
bonjour,
je pense que j'ai pas bien écris mon probleme, mon probleme est de donner des droits d'accés aux utilisateurs a condition que par exemple l'administrateur a le droit de modifier la base de donnée, de supprimer queleque ligne..., alors que les autres utilisateurs ont seulement le droit de rechrecher des information et la consultation des tables,meme si ils ont les meme interfaces.donc je veux un code qui génére une erreur ou bien un msg lorsqu un utilisateur veut supprimer ou modifier les information du base de donnée.
Messages postés
1
Date d'inscription
jeudi 11 septembre 2008
Statut
Membre
Dernière intervention
16 septembre 2008

Bonjour,

A ta place, j'implémenterais une sécurité à deux niveaux : au niveau de la base de données tout d'abord, en SQL, avec au moins trois types d'utilisateurs :
- le groupe des administrateurs de la base (ceux qui ont le droit d'en modifier la structure), c'est-à-dire, en pratique, toi ;
- le ou les groupes de ceux qui ont le droit d'écrire des données sur telle ou telle table ;
- le groupe de ceux qui n'ont accès qu'en lecture.
Ce dernier niveau de sécurité se réalise par des instructions SQL, directement sur le serveur de base de données (du genre CREATE USER... ou ROLE en Oracle (cf https://ss64.com/ora/user_c.html , https://ss64.com/sql/role_c.html et des permissions sur les utilisateurs (GRANT... : http://www.commentcamarche.net/forum/affich 329529 definition droits utilisateurs sur bd oracle)

Ensuite, tu devrais créer un second niveau de sécurité par toi-même, pour ton application cliente (interface utilisateur), en créant par exemple dans ta base une table Utilisateurs, qui contiendra au moins les champs suivants : identifiant (nom d'utilisateur), mot de passe (pas stocké directement, mais son empreinte MD5 par exemple, ou crypté d'une autre manière) et rôle ou groupe (type d'actions permises sur la base).
L'utilisateur se connectera sur une fenêtre de login, par son identifiant et le mot de passe. Je te conseille de crypter son mot de passe côté client avant de l'envoyer au serveur (si ça t'intéresse, je t'enverrai une classe de cryptage MD5). Le couple id utilisateur - mot de passe seront envoyés à ton application serveur, qui en évaluera la validité.

Ca pourrait être une bonne idée d'implémenter les différents services de ton application (sélection et lecture de données, modifications...) comme des méthodes qui prendraient également comme argument un objet d'une classe User (par exemple modifieInformation (String critere, User u) - j'écris n'importe quoi, c'est pour l'exemple.
Cet objet de type User aura été renvoyé dès qu'un utilisateur ce sera loggé correctement. La classe devra définir le type de User, en fonction des différents rôles prédéfinis dans la base. Cet objet User persistera tout le temps de la session de ton utilisateur.

Le principe est le suivant :
L'utilsateur se connecte avec succès (son nom et l'empreinte MD5 de son mot de passe correspondent à ce qui existe dans ta table Utilisateurs) --> un objet User est créé avec son rôle bien défini.
A chaque fois que l'application fera appel à une fonctionnalité, cet objet User sera passé à la méthode correspondante, qui évaluera d'abord si ce "User" a ou non le droit d'effectuer ce type d'opération, par exemple :

// Une fonction typique d'administration :
public void supprimeUtilisateur (String identifiantASupprimer, User user) throw Exception
{
if (user.isAdmin ())
{
... // suppression de l'utilisateur et message OK
}
else
{
throw new Exception ("Vous n'êtes pas admin, désolé...);
}
}

De plus, en fonction du rôle du User, il faudra dans les connexions SQL différentes, faire appel à tel ou à tel ROLE Oracle. Par exemple un User de type admin aura une connexion associée avec un rôle de dba, etc.

Voilà l'idée !