Spec-Zone .ru
спецификации, руководства, описания, API

13.7.1.2. CREATE USER Syntax

CREATE USER user_specification    [, user_specification] ...user_specification:    user    [        IDENTIFIED BY [PASSWORD] 'password'      | IDENTIFIED WITH auth_plugin [AS 'auth_string']    ]

The CREATE USER statement creates new MySQL accounts. To use it, you must have the global CREATE USER privilege or the INSERT privilege for the mysql database. For each account, CREATE USER creates a new row in the mysql.user table and assigns the account no privileges. An error occurs if the account already exists.

For CREATE USER statements that do not specify an IDENTIFIED WITH auth_plugin clause, the server associates the account with the default authentication plugin. As of MySQL 5.6.6, this is the plugin named by the --default-authentication-plugin option at server startup, or mysql_native_password if that option is not used. Before 5.6.6, the default plugin is mysql_native_password. For information about authentication plugins, see Section 6.3.7, "Pluggable Authentication".

Each account name uses the format described in Section 6.2.3, "Specifying Account Names". For example:

CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'mypass';

If you specify only the user name part of the account name, a host name part of '%' is used.

The user specification may indicate how the user should authenticate when connecting to the server:

The IDENTIFIED BY and IDENTIFIED WITH clauses are mutually exclusive, so at most one of them can be specified for a given user.

For additional information about setting passwords, see Section 6.3.5, "Assigning Account Passwords".

Important

CREATE USER may be recorded in server logs or in a history file such as ~/.mysql_history, which means that cleartext passwords may be read by anyone having read access to that information. See Section 6.1.2, "Keeping Passwords Secure".

Important

Some releases of MySQL introduce changes to the structure of the grant tables to add new privileges or features. Whenever you update to a new version of MySQL, you should update your grant tables to make sure that they have the current structure so that you can take advantage of any new capabilities. See Section 4.4.7, "mysql_upgrade — Check and Upgrade MySQL Tables".