title: CREATE USER summary: TiDB 数据库中 CREATE USER 的使用概况。

CREATE USER

CREATE USER 语句用于创建带有指定密码的新用户。和 MySQL 一样,在 TiDB 权限系统中,用户是用户名和用户名所连接主机的组合。因此,可创建一个用户 'newuser2'@'192.168.1.1',使其只能通过 IP 地址 192.168.1.1 进行连接。相同的用户名从不同主机登录时可能会拥有不同的权限。

语法图

  1. CreateUserStmt ::=
  2. 'CREATE' 'USER' IfNotExists UserSpecList RequireClauseOpt ConnectionOptions PasswordOrLockOptions
  3. IfNotExists ::=
  4. ('IF' 'NOT' 'EXISTS')?
  5. UserSpecList ::=
  6. UserSpec ( ',' UserSpec )*
  7. UserSpec ::=
  8. Username AuthOption
  9. AuthOption ::=
  10. ( 'IDENTIFIED' ( 'BY' ( AuthString | 'PASSWORD' HashString ) | 'WITH' StringName ( 'BY' AuthString | 'AS' HashString )? ) )?
  11. StringName ::=
  12. stringLit
  13. | Identifier

示例

创建一个密码为 newuserpassword 的用户。

  1. CREATE USER 'newuser' IDENTIFIED BY 'newuserpassword';
  1. Query OK, 1 row affected (0.04 sec)

创建一个只能在 192.168.1.1 登录的用户,密码为 newuserpassword

  1. CREATE USER 'newuser2'@'192.168.1.1' IDENTIFIED BY 'newuserpassword';
  1. Query OK, 1 row affected (0.02 sec)

创建一个要求在登录时使用 TLS 连接的用户。

  1. CREATE USER 'newuser3'@'%' REQUIRE SSL IDENTIFIED BY 'newuserpassword';
  1. Query OK, 1 row affected (0.02 sec)

创建一个要求在登录时提供指定客户端证书的用户。

  1. CREATE USER 'newuser4'@'%' REQUIRE ISSUER '/C=US/ST=California/L=San Francisco/O=PingCAP' IDENTIFIED BY 'newuserpassword';
  1. Query OK, 1 row affected (0.02 sec)

MySQL 兼容性

  • TiDB 不支持 WITH MAX_QUERIES_PER_HOURWITH MAX_UPDATES_PER_HOURWITH MAX_USER_CONNECTIONSCREATE 选项。
  • TiDB 不支持 DEFAULT ROLE 选项。
  • TiDB 不支持 PASSWORD EXPIREPASSWORD HISTORY 等有关密码限制的 CREATE 选项。
  • TiDB 不支持 ACCOUNT LOCKACCOUNT UNLOCK 选项。
  • 对于 TiDB 尚不支持的 CREATE 选项。这些选项可被解析,但会被忽略。

另请参阅