I'm interested in obtaining web hosting services that include mysql. I currently have a website running with mysql. I would like to know what a typical web hosting service provides as far as mysql is concerned. Do you receive one database on the mysql server along with one username with which you are free to use to create/edit/destroy tables? Or do you get one mysql process with which you can create several databases? I'm assuming the former is the case for most services like FeaturePrice, but I wasn't sure.
The reason I ask is, right now my website basically does password authentification by seeing if the username/password allows the user to open a mysql database. So, if user john_doe has password 1234, the mysql database is opened from a perl cgi script using that username/password. If I only have 1 database and/or 1 user, it will probably require a rewrite of my code (no big deal, I just want to know what's standard).
Yes with a database you can create as many tables as you like that are controlled under 1 user account, or how ever many your hosting package comes with. You add/remove/update/change tables through something like phpMyAdmin.
You can manage your databases completely through CPanel, assigning users to certain databases and creating new users for new database access.
Most hosts do offer multiple databases, then you're free to create different users to access certain databases
Thanks for all of the replies. So it sounds like depending on the hosting provider, I may or may not have the ability to add and remove usernames and databases. Can anyone recommend a good web hosting service that allows one to add/remove users and databases through a perl cgi script? A rewrite of my current CGI isn't out of the question, but if I can find a web hosting service that allows me to create multiple users and databases through cgi instead of a control panel, I think I would be much happier.
Otherwise, it sounds like a security problem when you consider some websites have sensitive information which are stored for each user in a mysql database. This is the case with my website. If one user has "God" access to the mysql database (that is, if you create one table per WEB USER to store their data, but have one MYSQL USER creating all of the tables for each WEB USER and editting them), then inevitably you have only one bottleneck limiting anyone from accessing and/or modifying all of the data in your mysql database, right? So if someone gets the mysql username/password combination, you risk having all of your data compromised. Or am I just being too paranoid?
Ok, not to start a flamewar here, but just how does Plesk deal with usernames/database names then?
At first I thought the cPanel method was rather a pain (prepending the account name to each).. but it's much better then having 25 clients all trying to create their own "phpBB" database on the same mysql server!
So just how does Plesk keep two users from trying to create the same username and databases? Just a first come first served method?