Rechercher : dans
Par :

[SQL] Gestion des droits

Dernière réponse le 26 jan 2007 à 15:23:12 akyrion3000, le 26 jan 2007 à 02:52:28 
 Signaler ce message aux modérateurs

Bonsoir ,

J'ai un site actuellement au stade de maquette, et la question de la création d'utilisateurs et de gestion des droits d'accés et d'écriture dans ma base de données SQL va se poser.

scénario : (gestions de restaurants)
L'utilisateur s'inscrit, puis complète une table "etablissement".

Il est bien entendu évident qu'il ne faut pas donner des droit root aux utilisateurs ni laisser cet identifiant et son mdp trainer sur le serveur.

Ma question est la suivante :
Solution 1 : Je creer un user standard qui écrira dans la table après que l'utilisateur est cliqué sur le bouton "envoyer" du formulaire
Solution 2 : Chaque utilisateur à la création de son compte enclenche la création d'un user avec accès en écriture dans la table souhaitée.
Suis-je dans l'erreur ? J'ai imaginé cette possibilité en pensant qu'il serait plus aisé de supprimer une pollution de base par un hackeur si ce dernier a un identifiant perso ? Peut-on supprimer les enregistrements fait par un utilisateur ds une base ?

Akyrion

Configuration: Windows XP
Internet Explorer 7.0

Meilleures réponses pour « [SQL] Gestion des droits » dans :
Windows 7 professionnel : sécurité, administration réseau VoirQu’attendre de Windows 7 professionnel en terme de sécurité des données, de cryptage et aussi en terme de d’administration réseau. La sécurité optimisée L'administration réseau simplifiée La révolution tactile : quel usage pour les pro...
Gestion des paramètres SQL VoirSQL présente un certain nombre de paramètres au niveau d'Oracle qu'il est possible de visualiser à travers la commande : SHOW ALL Pour modifier la valeur d'un paramètre il suffit d'utiliser la commande : SET NOM_PARAM VALEUR
Gérer les partitions sous Windows VoirPour ceux qui veulent gérer leurs partitions sous Windows XP, Vista ou Sept sans télécharger aucun logiciel supplémentaire, voici la procédure : Accédez au gestionnaire de disque Partitionner son disque Réduire une partition Créer une...
SQL - Gestion des permissions VoirGestion des permissions Plusieurs personnes peuvent travailler simultanément sur une base de données, toutefois ces personnes n'ont pas forcément les mêmes besoins: certaines peuvent par exemple nécessiter de modifier des données dans la table,...
SQL - Mise à jour d'informations VoirLe SQL permet la modification d'une table par un utilisateur (pour peu qu'il ait les droits suffisants...). La modification d'une table consiste à: ajouter des tuples modifier des tuples existants ou bien supprimer des tuples Insertion de...
Le droit d'auteur VoirIntroduction au droit d'auteur Le droit d'auteur en France est régi par par la loi du 11 mars 1957 et la loi du 3 juillet 1985, codifiées dans le code de la propriété intellectuelle. La loi reconnaît en tant qu'auteur toute personne physique qui...

1

 kij_82, le 26 jan 2007 à 15:23:12

J'ai peut etre pas bien compris... mais une question me viens à l'esprit :
En gros ce que tu souhaite faire c'est un "compte" sur le serveur SQL pour chaque personne inscrite. De cette facon tu peux attribuer les droits par rapport aux users de la base de données, et non par rapport à un sytème de droit implémenté direct sur ta base de données.
C'est bien beau mais.. cela veut dire que tu devra gérer la facon d'effectuer une connexion à une base de données via PHP
Je parle de cela :

//------------------------------------------\\
function db_connect(){
//
// tests de connexion a mysql et a la base. \\
//------------------------------------------\\
	$base ="popo";
                     $user = "mofifiable";  $pwd = "modifiable";
	$conn = mysql_connect('localhost',$user,$pwd);
	if(!$conn)
		messerr("Pb connection mysql","white");

	if(!mysql_select_db($base,$conn)){
		mysql_close($conn);
		messerr("Pb connection a la base \"".$base."\"","white");
	}
	return $conn;
}


Mais pour pouvoir te connecter avec des paramètres personnels à chaque utilisateur, il te faut tout d'abord identifier cet utilisateur par rapport à ta base de donnée, et là tu dois donc passer par un user prédéfini pour retrouver ces données.

Bon, tu vas me dire... la fonction données ci dessus peut prendre pour paramètre le user et mdp, et si pas fournis, alors prendre un user/mdp par défaut.

Mais je trouve tout de même ce système un peu.. lourd à mettre en place (1 user par utilisateur sur le site) et surtout ca ne servirai pas à grand chose je pense.
Je ne crois pas qu'il soit possible de retrouver les modifications faites par tel ou tel user dans la base de données. En tout cas pas sous MySQL (je ne sais pas pour les autres).
Ou peut etre ton hébergeur t'offre-t-il une fonctionnalité permettant de faire cela. (?)

En tout cas, (je donne mon avis personnel) je garderais la solution 1.

Par contre, ce que tu peux faire si tu souhaite savoir qui fais quoi, c'est instauré un systeme de log, avec une classe objet php qui récupère des messages de log et qui régulièrement écrit ces logs dans un fichier, avec date, heure, et les infos concernant l'action faite, ainsi que l'utilisateur qui l'a faite.

~ iclic @ gauch,iclic,  iclic @ droate, iclic, iclic
             et ya pas de bôg môsieu !    ~

Répondre à kij_82
Collection CommentÇaMarche.net