The MySQL database software offers both administrators and users a great amount of control options. You can learn more about the users' MySQL management rights in our articles dedicated to the create-user, create-database, create-table and alter-table command options. The administration side of the process includes the possibility for the administrators to control certain user privileges over the MySQL server by restricting their access to an entire database or just limiting permissions for a specific table.
The administrators' control over the MySQL server users is executed through five tables within the MySQL database - the user table, determining whether the user can connect to the server or not, the db, tables_priv and columns_pri tables, specifying which users can access certain databases, tables or table columns from given hosts, and the host table, defining whether an entry within the db table should be extended and with what values.
The GRANT statement gives you the power to enable all, or a selection of, user privileges for a database or for a specific table. In order to GRANT privileges, first you need to log in to the MySQL server using an SSH client. Once you’ve opened an SSH console, please connect to the MySQL server using the following command:
Once logged on to the server, you will see MySQL's SQL command line. Now you can add specific privileges to a user. Let's for example grant SELECT privileges to a user db_user for database 'db_base'. Here is the SQL query:
If SELECT is not enough for our user we can add more privileges using a query similar to the one below:
If you want to GRANT ALL the privileges to a user then use this query:
As you see in the latest example we use '%' instead of localhost, which means that our user can use all the privileges from every host.
Sometimes you need to grant privileges to a user for a specific table. To specify the table, replace '*' in 'db_base.*' with your table's name.
Once you have given the desired privileges for your user, you will need to FLUSH privileges in order to complete the setup and to make the new settings work. To do so, run this command within the SQL command prompt:
Resources: