|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre éprouvé
![]() Ingénieur sécurité Inscription : février 2007 Messages : 433 ![]() |
Bonjour à tous,
J'ai crée une application qui stocke des données dans une base. J'ai crée un dsn, un user séparé (avec un mot de passe) pour mon programme. Mon problème est le suivant : j'aimerai automatiser l'installation sur les postes qui possèdent déjà MySQL. J'aimerai donc crée une base de donnée pour l'utilisateur user de mon programme, sans passer par le compte root? Est-ce possible, ou suis-je obligé de demander à l'installateur de créer un compte MySQL? Merci. |
|
00
|
|
|
#2 |
|
Membre actif
![]() Inscription : juillet 2007 Messages : 179 ![]() |
bonjour,
si ton utilisateur a le droit de créer une bd, pas de problème il suffit de cocher "CREATE" quand tu le crées |
|
|
00
|
|
|
#3 |
|
Membre éprouvé
![]() Ingénieur sécurité Inscription : février 2007 Messages : 433 ![]() |
En fait, serveur et client son sur la même machine. L'appli doit donc créer son propre utilisateur à l'installation. Pour celà il faut être root (il me semble) sur le serveur sql, ce que mon appli ne pourra pas faire. Est-ce que je me pose un faux problème?
|
|
00
|
|
|
#4 |
|
Membre expérimenté
![]() Étudiant Inscription : mars 2006 Messages : 396 ![]() |
Comme l'a dit sebdu, pour qu'un utilisateur puisse créer une table, il doit avoir le privilège CREATE.
Tout utilisateur ayant le privilège CREATE pour une base de données peut créer des tables dans cette base. L'utilisateur root peut créer des tables parce qu'il a le privilège CREATE. En fait, l'utilisateur root peut ne pas exister. Lors de l'installation de mysql, le logiciel crée un compte utilisateur avec tous les droits. Cette utilisateur est nommé root et n'a pas de mot de passe. Il s'agit d'un compte administrateur créé par défaut à l'installation de mysql pour pouvoir gérer les bases de données. Sans cet utilisateur, mysql ne serait pas utilisable (sans compte administrateur, il serait impossible de gérer les bases de données). Toutefois, il ne doit pas y avoir obligatoirement de compte utilisateur administrateur nommé root. Un compte administrateur doit seulement exister. Mais en pratique, pour ne pas compliquer les choses, le compte administrateur principal s'appelle souvent root. Pour revenir à ton problème, pour qu'une application puisse créer des tables, elle doit avoir le privilège CREATE. Cependant, je trouve que ce serait une mauvaise idée de créer une application capable de s'auto-installer (cela pourrait poser des problème de sécurité). En effet, des tables ne seront créées qu'au moment de l'installation de l'application. Ensuite, l'application n'aura plus besoin de créer des tables. Je te conseille plutôt de créer 2 types d'applications. D'un côté, des applications clientes (il s'agit de ton application). De l'autre, une application serveur qui gère l'installation de ces applications clientes. De cette manière, l'installation sur plusieurs postes sera facilités. Il suffira de se connecter à l'application serveur et de demander l'installation de telle ou telle application. L'installation proprement dite de cette application se fera alors automatiquement. Pour rendre l'opération encore plus simple, cette installation pourrait se faire lors de la première utilisation d'une application. Lorsqu'un utilisateur demande à une utiliser une application, si celle-ci n'est pas installée, l'installation se fera automatiquement. |
|
|
00
|
|
|
#5 |
|
Membre éprouvé
![]() Ingénieur sécurité Inscription : février 2007 Messages : 433 ![]() |
Merci de ces précisions Jeremya...
Ta solution de séparer en deux install me semble bonne, mais les deux devront se faire en local. Mon projet, pour faire simple utilise une interface Visio, dans laquelle l'utilisateur dessine un réseau avec différents types de machines. En fonction de la connexion de ces machines des règles sont générés. Ensuite les différents types de machine et leurs caractérictiques sont stockés dans une base possédant plusieurs tables. Ces caractéristiques sont triés et forment un fichier de config. Ces fichiers sont ensuite transmis via le réseau sur l'adresse broadcast aux machines physiques. En fait, le réseau n'éxiste pas avant qu'il soit configuré par mon appli. Je peux donc pas utiliser de serveur distant MySQL. Il est basé en local. Le but étant grâce à une appli de déployer très rapidement un réseau. Enfin bref, je conserve ton idée en tête... Si d'autres idées vous viennent, elles sont les bienvenues. Merci de votre aide en tou cas. |
|
00
|
Copyright © 2000-2012 - www.developpez.com