CREATE USER
CREATE USER 'user'[@'host'] [IDENTIFIED BY [PASSWORD] 'password'] [, ...]
This statement creates new user accounts on the MySQL server.
The username is given within quotes, followed by the at
sign (@) and a host IP address or hostname within
quotes. For accessing MySQL locally, use the host of localhost. The IP
address is 127.0.0.1. Use the percent sign
(%) wildcard as the host to allow a client with the
specified username to connect from any host. If no host or
@ is given, the percent sign is assumed.
The user password is given in plain text within quotes,
preceded by the IDENTIFIED BY clause.
You don’t need to use the PASSWORD() function
to encrypt the password; this is done automatically. However, if you
wish to provide the hash value of the password, precede the password
with IDENTIFIED BY PASSWORD. If the password clause
is not given, a blank password is assumed and will be accepted. This
is a potential security problem and should never be done. If you do
this by mistake, use the SET PASSWORD statement to set the
password.
Multiple user accounts may be specified in a comma-separated list.
The CREATE USER statement was introduced in
version 5.0.2 of MySQL. For previous versions, use the
GRANT statement. This new statement operates similarly to the
GRANT statement, except that you cannot specify
user privileges with the CREATE USER statement. As
a result, the process is to create a user with the CREATE
USER statement and then to grant the user privileges with
the GRANT statement. This two-step process is a
more logical process, especially to a newcomer to MySQL. However, you
can still use just the GRANT statement to create
and set privileges for a new user.
This statement requires CREATE USER privilege
or INSERT privilege for the
mysql database, which contains user account
information and privileges. To remove a user, use the DROP
USER statement and possibly also the
REVOKE statement:
CREATE USER 'paola'@'localhost' IDENTIFIED BY 'her_password', 'paola'@'caporale.com' IDENTIFIED BY 'her_password';
In this example, two user accounts are created along with their
passwords, but both are for the same person. The difference is that
one allows the user to log into the server hosting the database and to
run the mysql client or some other client on the
server, the localhost. The other account allows
the user to connect from a host named caporale.com using a client from that
host. No other host will be allowed for this user.