J'ai une application Mysql/PHP. Je veux le vendre SAS. Je pense à une société d'hébergement qui a plusieurs bases de données disponibles. Je veux une page où ils se connectent et je les emmène dans leur base de données. J'aurai beaucoup de bases de données avec une structure identique. J'ai besoin d'un moyen de les changer dans ce dossier (je peux modifier un peu de code pour eux comme css) et exploiter leur base de données. Je pourrais utiliser une table principale pour les connexions mais comment se connecter à leur base de données? Je suis préoccupé par la sécurité. Exemple: Disons que j'ai 3 clients. A B C J'ai mis en place 3 dossiers sur un serveur apache, y ai copié du code, j'ai défini des noms de base de données uniques comme new_db_a, new_db_b, new_db_c. Maintenant, si je le fais dans une variable de la mémoire quand un se connecte il va le prendre à sa place. Il peut voir l'URL et pourrait facilement substituer une autre lettre et exécuter une autre base de données d'entreprises. Je suis prêt à utiliser Perl, PHP ou autre pour le faire. Quel est le meilleur moyen de le faire?Configuration de plusieurs bases de données mysql
Répondre
Ceci est un problème d'abstraction classique. Fondamentalement, vous devez extraire le processus de sélection de la base de données non seulement de l'application, mais aussi de l'écran de sélection. Pensez-y à des termes «d'espace de problème». Chaque application a son propre (c'est-à-dire sa base de données) et vous en avez un de plus, qui est le système de connexion du client. Il n'y a rien de mal à utiliser une autre base de données différente pour cela. Associé à chaque connexion sera l'information de connexion à la base de données. Cela signifie que vous pouvez stocker les informations de la base de données dans la session PHP avec le fait que l'utilisateur est connecté (et avec qui il est connecté). Maintenant, votre autre application doit apprendre à sa couche de base de données [1] comment rechercher les informations de base de données dans la session. En effet, si vous stockez non seulement le nom de la base de données, mais aussi le nom du serveur, un login et un mot de passe, vous avez la possibilité de mettre des clients sur le même serveur de base de données. correct (pas dur). Cependant, la plus grosse mouche dans cette pommade est que si l'application sélectionnée décide de prendre le contrôle des informations de la session PHP elle-même. Il y a plusieurs façons de résoudre cela. On lui demande de copier dans sa propre session ce dont il a besoin pour se connecter à la bonne base de données. Une seconde est pour la session de sélection de faire sa gestion de session séparément et éventuellement manuellement. Mais ne stockez pas les informations de la base de données dans un cookie. Non seulement cela peut être changé par un utilisateur déterminé, mais vous cédez la sécurité à un emplacement non sécurisé - le navigateur.
[1] Vous avez une couche de base de données appropriée, n'est-ce pas? Et par là je veux dire que vous avez tous vos appels mysql_query()
derrière un gestionnaire, soit sur mesure ou quelque chose comme PDO.
- 1. MySQL triggers + réplication avec plusieurs bases de données
- 2. NHibernate et plusieurs bases de données
- 3. Connexion de plusieurs bases de données dans Rails
- 4. SubSonic 2.1 utilisant plusieurs bases de données
- 5. Affichage des données et comptage à partir de plusieurs bases de données dans MySQL
- 6. Avoir un fichier ibdata différent pour plusieurs bases de données
- 7. C# gère plusieurs types de bases de données?
- 8. Configuration de base de données MySQL dans une classe séparée
- 9. Synchroniser le schéma de deux bases de données dans MySQL
- 10. Importation de toutes les bases de données MySQL
- 11. Utilisation de plusieurs bases de données SQLite à la fois
- 12. Conservation de l'intégrité référentielle sur plusieurs bases de données
- 13. Résultats de recherche pertinents à travers plusieurs bases de données
- 14. Prise en charge de plusieurs bases de données dans Symfony
- 15. Utilisation de plusieurs bases de données avec Elixir
- 16. Comment activer les jointures entre bases de données dans mysql?
- 17. Interrogation plusieurs bases de données sur SQL Server
- 18. S # arp Architecture/NHibernate avec plusieurs bases de données
- 19. Problème avec l'instruction Count pour plusieurs bases de données
- 20. Comment fusionner plusieurs bases de données en une seule
- 21. Grails et plusieurs bases de données (une par hôte)?
- 22. sql sélectionner à travers plusieurs bases de données postgres
- 23. Configuration de l'index Mysql
- 24. Plusieurs tables de données en PHP/MySQL?
- 25. Recherche de bases de données
- 26. Modèle de base de données Factory avec plusieurs bases de données
- 27. Dynamic LINQ avec d'autres bases de données
- 28. Comment accéder aux données entre les bases de données dans mysql?
- 29. Gestion de plusieurs bases de données avec NHibernate dans une seule application
- 30. Indexation des bases de données
J'ai repensé votre question de "sas" à "saas", puisque je pense que vous parlez de Software as a Service (SaaS). S'il vous plaît laissez un commentaire si je me trompe à ce sujet, et je vais le changer. –