Adding New User Privileges to MySQL

You can add users two di erent ways: by using GRANT statements or by manipulating the
MySQL grant tables directly. The preferred method is to use GRANT statements, because
they are more concise and less error-prone.

The examples below show how to use the mysql client to set up new users. These examples
assume that privileges are set up according to the defaults described in the previous section.
This means that to make changes, you must be on the same machine where mysqld is
running, you must connect as the MySQL root user, and the root user must have the
insert privilege for the mysql database and the reload administrative privilege. Also, if you
have changed the root user password, you must specify it for the mysql commands below.
You can add new users by issuing GRANT statements:

shell> mysql --user=root mysql
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@localhost
IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@"%"
IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
mysql> GRANT RELOAD,PROCESS ON *.* TO admin@localhost;
mysql> GRANT USAGE ON *.* TO dummy@localhost;
These GRANT statements set up three new users:

monty A full superuser who can connect to the server from anywhere, but who must use
a password 'some_pass' to do so. Note that we must issue GRANT statements
for both monty@localhost and monty@"%". If we don't add the entry with
localhost, the anonymous user entry for localhost that is created by mysql_
install_db will take precedence when we connect from the local host, because
it has a more speci c Host eld value and thus comes earlier in the user table
sort order.
admin A user who can connect from localhost without a password and who is granted
the reload and process administrative privileges. This allows the user to execute the mysqladmin reload, mysqladmin refresh, and mysqladmin flush-*
commands, as well as mysqladmin processlist .
No database-related privileges are granted. They can be granted later by issuing additional GRANT
statements.

dummy A user who can connect without a password, but only from the local host. The
global privileges are all set to 'N' | the USAGE privilege type allows you to
create a user with no privileges. It is assumed that you will grant databasespeci c privileges later.
You can also add the same user access information directly by issuing INSERT statements
and then telling the server to reload the grant tables