Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Débuter
Débuter Forum d'entraide pour débuter avec MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/09/2007, 13h25   #1
Membre éprouvé
 
Ingénieur sécurité
Inscription : février 2007
Messages : 433
Détails du profil
Informations personnelles :
Âge : 27
Localisation : Australie

Informations professionnelles :
Activité : Ingénieur sécurité
Secteur : Industrie

Informations forums :
Inscription : février 2007
Messages : 433
Points : 414
Points : 414
Par défaut Comment créer une table sans être root?

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.
dahtah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/09/2007, 13h49   #2
Membre actif
 
Inscription : juillet 2007
Messages : 179
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : juillet 2007
Messages : 179
Points : 159
Points : 159
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
sebdu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/09/2007, 15h48   #3
Membre éprouvé
 
Ingénieur sécurité
Inscription : février 2007
Messages : 433
Détails du profil
Informations personnelles :
Âge : 27
Localisation : Australie

Informations professionnelles :
Activité : Ingénieur sécurité
Secteur : Industrie

Informations forums :
Inscription : février 2007
Messages : 433
Points : 414
Points : 414
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?
dahtah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/09/2007, 16h29   #4
Membre expérimenté
 
Étudiant
Inscription : mars 2006
Messages : 396
Détails du profil
Informations personnelles :
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2006
Messages : 396
Points : 500
Points : 500
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.
jeremya est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/09/2007, 19h42   #5
Membre éprouvé
 
Ingénieur sécurité
Inscription : février 2007
Messages : 433
Détails du profil
Informations personnelles :
Âge : 27
Localisation : Australie

Informations professionnelles :
Activité : Ingénieur sécurité
Secteur : Industrie

Informations forums :
Inscription : février 2007
Messages : 433
Points : 414
Points : 414
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.
dahtah est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h55.


 
 
 
 
Partenaires

Hébergement Web