|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre éclairé
![]() Inscription : février 2004 Messages : 500 ![]() |
Hello tout le monde..
Est ce qu'il est possible de créer des utilisateurs sous mysql et de leur autorisé l'accès uniquement sur certaine ligne ? par exemple uniquement sur les lignes qu'il ont créer eux meme ? Si c'est pas possible comment faite vous pour protéger les données présent dans la base de donnée ? merci |
|
|
00
|
|
|
#2 |
|
Provisoirement toléré
Inscription : juin 2003 Messages : 2 622 ![]() |
Salut,
Il n'est pas possible de savoir de manière simple qui a inséré telle ou telle ligne. En revanche on peut créer une vue qui ne comportera que certaines lignes de la table d'origine, et ne donner au user que les privilèges sur cette vue et pas la table (plus d'explications ici). Sinon, par utilisateur tu entends utilisateur de la base de données ou de l'application ?
__________________
Pensez au bouton
|
|
|
00
|
|
|
#3 |
![]() Inscription : juillet 2002 Messages : 537 ![]() |
Bonjour,
J'aurais peut-être une solution, qui a certes ses inconvénients. Le premier étant qu'il faut utiliser MySQL >= 5. Comme le dit Maximilian, on ne connaît pas qui a inséré les lignes. Donc la première chose à faire serait de rajouter une colonne "Utilisateur" (VARCHAR(80) devrait être bon) à la table. Ensuite, à chaque insertion, on appelle USER() pour stocker l'utilisateur qui exécute la requête : Code :
INSERT INTO client VALUES (..., ..., USER()); Code :
CREATE VIEW mes_clients AS SELECT col1, col2, ... FROM client WHERE utilisateur = USER(); il obtiendra les infos des clients qu'il a insérés dans la table Client. Les inconvénients qui me viennent à l'esprit :
|
|
|
00
|
|
|
#4 | |
|
Membre éclairé
![]() Inscription : février 2004 Messages : 500 ![]() |
Citation:
Pcq en faite j'aimerais faire une appli qui se connecte directement à la base ! Les utilisateurs auront un login et un mot de passe que j'aurais auparavant créer sous mysql ! Le problème avec l'enregistrement du user dans la table c'est que j'ai pas mal de table ! j'me vois pas trop le stoquer dans chaque ! Ou alors j'ai pensé faire une base de donnée par personne mais bon ca me parait un peu lourd, non ? |
|
|
|
00
|
|
|
#5 | |
![]() Inscription : juillet 2002 Messages : 537 ![]() |
Citation:
A chaque changement des utilisateurs (ajout par exemple), il va sûrement te falloir changer certaines tes requêtes pour prendre en compte la nouvelle base. Je pense notamment si tu as un utilisateur "admin" qui peut accéder à tous les enregistrements dans ton appli. |
|
|
|
00
|
|
|
#6 |
|
Provisoirement toléré
Inscription : juin 2003 Messages : 2 622 ![]() |
A mon avis tout dépend de ton appli :
- Si c'est une sorte de PHPMyAdmin où les utilisateurs saisissent des commandes SQL, alors tu seras obligé comme la plupart des hébergeurs d'avoir une table ou une base par user. Tu peux tester la solution de Biglo mais c'est vrai que ça risque d'être un peu lourd au niveau performances (et le WHERE utilisateur = USER() n'est-il pas interprété au moment de la création de la vue ?) - Pour une appli plus classique, avoir un user SGBD pour chaque user du programme est une assez mauvaise idée. En effet le SGBD n'est pas (encore ?) un outil assez perfectionné pour intégrer les règles de gestion selon lesquelles tel utilisateur a accès à telles ou telles données précises. Pour preuve les problèmes de privilèges sur des lignes. Ce boulot relève plus de la logique métier codée dans l'application.
__________________
Pensez au bouton
|
|
|
00
|
|
|
#7 | |
![]() Inscription : juillet 2002 Messages : 537 ![]() |
Citation:
|
|
|
|
00
|
|
|
#8 | ||
|
Membre éclairé
![]() Inscription : février 2004 Messages : 500 ![]() |
Citation:
Citation:
On peut faire des triggers avec les dernières version de mysql ou bien ? Est ce qu'on peut déclencher un trigger sur une requête de sélection ? |
||
|
|
00
|
|
|
#9 | |
![]() Inscription : juillet 2002 Messages : 537 ![]() |
Citation:
Que veux-tu faire ? Tu peux peut-être créer une procédure qui ferait le traitement que tu désires, puis qui génère le résultat du SELECT. |
|
|
|
00
|
|
|
#10 | |
|
Provisoirement toléré
Inscription : juin 2003 Messages : 2 622 ![]() |
Citation:
__________________
Pensez au bouton
|
|
|
|
00
|
|
|
#11 | ||
|
Membre éclairé
![]() Inscription : février 2004 Messages : 500 ![]() |
Citation:
Citation:
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com