|
MySQL: MySQL user accounts | MySQL Console | MySQL phpMyAdmin | MySQL Extra Database | MySQL Lost Password | MySQL Error 1067 |
| MySQL: General information. |
Hosting separate user accounts on MySQL server
Hosting separate user accounts on your MySQL server requires a properly configured MySQL user management system and the use of phpMyAdmin-advanced authentication.
Sounds a complex task however in reality it is extremely easy because inherently all the components are in place. Uniform Server has phpMyAdmin set-up for local access by user root this is easily changed to provide a central copy for users to access via the Internet and maintain their individual databases.
Before diving in it is worth looking at a little MySQL history this helps in understanding why Uniform Server changed the program name!
I have included this section to show there were actually several versions of the MySQL server to choose from:
After installing full versions of MySQL all the above programs are located in the bin directory. Use mysql-opt for Win98x/ME and mysqld-nt on Windows NT/2000/XP.
When MySQL five series was introduce support for Windows 95/98/ME and older version were dropped. The following versions are supported Windows operating system 2000; XP, Vista and Windows Server 2003 the number of programs were reduced accordingly:
Uniform Server 3.5-Apollo
Take a look in folder *\Uniform Server\udrive\usr\local\mysql\bin you may be surprised to find the server is mysqld-opt.exe! In reality it is mysqld-nt.exe renamed allowing backwards compatibility with older plugins and scripts.
Real significance if you want to upgrade the MySQL server yourself make sure to use the correct file and rename it accordingly.
Enough of this digression lets look at providing our users with control and access to their MySQL accounts using phpMyAdmin.
MySQL management is straightforward every user with the exception of root (super user) have their global select privileges disabled. Each user must have a name and corresponding password. To complete the set-up assign each user one or more databases to access and assign privileges.
That covers the management system, to set-up each user account you can use either MySQL console or phpMyAdmin click the appropriate link for details. Below I have provided a summary for using phpMyAdmin after this show you how to install a central copy of phpMyAdmin for your users to access on-line.
Check the phpMyAdmin page for more details including images.
Start servers and phpMyAdmin:
Create databases:
Create user accounts:
Refresh the MySQL grant tables:
At the bottom of the User overview page (home > privileges) you will see the following statement:
"phpMyAdmin gets the users' privileges directly from MySQL's privilege tables. The content of these tables may differ from the privileges the server uses, if they have been changed manually. In this case, you should reload the privileges before you continue."
Click on reload the privileges link contained in the above statement this executes the query
SQL query:
FLUSH PRIVILEGES ;
Instructing the MySQL server to take another look at the user tables and hence puts all of your new users and privileges into operation.
Authentication has been built into phpMyAdmin since version 2.0.3 and uses the following procedure:
This allows users to log into phpMyAdmin and modify their own databases.
Uniform Server for security reason hides phpMyAdmin from external users, access is limited to local host. Using a copy of this with minor changes allows users to administer their own databases over the Internet. A central copy of phpMyAdmin is placed in the root folder with authentication enabled as follows:
$cfg['Servers'][$i]['auth_type'] = 'config'; // Authentication method (config, http or cookie based)?
$cfg['Servers'][$i]['user'] = 'root'; // MySQL user
$cfg['Servers'][$i]['password'] = implode ('', file ('../mysql_password')); // MySQL password (only needed
// with 'config' auth_type)
$cfg['Servers'][$i]['auth_type'] = 'http'; // Authentication method (config, http or cookie based)? $cfg['Servers'][$i]['user'] = ''; // MySQL user $cfg['Servers'][$i]['password'] = ''; //MySQL password (only needed with 'config' auth_type)
Testing: Type the following http://localhost/phpMyAdmin/ into your browser. You will be challenged to enter name and password.
Enter user root and the password you set for the MySQL server (using apanel) you will now have access to phpMyAdmin.
Note: Each user must have a different name and password.
You are dead in the water if you can access the account root with password root put your servers online and kiss your MySQL server good bye.
You are the only one that should know your root password remember the server defaults to root hence every one knows this. Please check out the security checklist page (apanel) and change the root password according to the instructions found on this page.
One final touch is to copy the file .htaccess (the one contained in your root folder will do) into the folder phpMyAdmin and edit it contents:
Delete all the lines and add this:
IndexIgnore *
It prevents viewing by a browser any folders in phpMyAdmin that do not contain an index page.
With your servers online, type into to your browser http://your_domain/phpmyadmin/ and check that everything works.
For example http://www.name.dyndns.org/phpMyAdmin/
Well that about wraps it up for user accounts on a MySQL server easy to implement. If you are not going to host user accounts, it is still worth reading the phpMyAdmin page to get a feel for its power. Remember you can break Uniform Server to your hearts content when it becomes irretrievable just delete it and install a clean version.
| | Ric |
Categories: UniCenter | MySQL | Facts