跳到主要内容

CREATE USER

描述

CREATE USER 语句用于创建新的 seekdb 用户。创建新用户后,可以使用新用户连接 seekdb 。

权限要求

执行 CREATE USER 语句创建用户需要当前用户拥有全局的 CREATE USER 权限。有关 seekdb 权限的详细介绍,参见 seekdb 的权限分类

语法

CREATE USER [IF NOT EXISTS] {user [, user...]}
[REQUIRE {NONE | SSL | X509 | tls_option}]
[WITH resource_option [resource_option...]];

user:
user_name
| user_name IDENTIFIED [WITH auth_plugin] BY password
| user_name IDENTIFIED [WITH auth_plugin] BY PASSWORD password
| user_name IDENTIFIED [WITH auth_plugin] AS PASSWORD 'auth_string'

tls_option:
CIPHER cipher_name
| ISSUER issuer_name
| SUBJECT subject_name

resource_option:
MAX_CONNECTIONS_PER_HOUR integer
| MAX_USER_CONNECTIONS integer

参数说明

参数描述
IF NOT EXISTS用于指示如果用户名已存在,则不进行创建。创建用户时,如果要创建的用户名已存在且没有指定 IF NOT EXISTS,则会报错。
user_name用户名,新建用户后,mysql.user 表会新增一行该用户的表项。可同时创建多个用户时,使用英文逗号(,)隔开。
auth_plugin用于指定用户身份验证的方式,目前仅支持 mysql_native_password 身份验证插件。
IDENTIFIED BY password为待创建的用户创建一个密码,此处密码为明文,存入 mysql.user 表后,服务器端会变为密文存储下来。如果密码中包含特殊字符 ~!@#%^&*_-+=`|()[]:;',.?/,需使用英文引号('")包含。
IDENTIFIED BY PASSWORD password为待创建的用户创建一个密码,此处密码为密文,将直接存入 mysql.user 表。
IDENTIFIED AS PASSWORD将账户身份验证插件设置为 auth_plugin,并将 auth_string 值存储在 mysql.user表中。如果插件需要哈希字符串,则假定该字符串已经是插件所需的哈希格式。
REQUIRE指定用户的密码验证要求,有如下几种取值。
  • NONE:表示用户没有密码验证要求,意味着用户可以使用任何密码或不设置密码。
  • SSL:表示用户必须使用 SSL 连接进行身份验证。
  • X509:表示用户必须使用 X509 证书进行身份验证。
  • tls_option:表示用户必须满足指定的 TLS(Transport Layer Security)要求。
tls_option指定 TLS 要求的具体选项。
  • CIPHER:用于指定 TLS 连接使用的加密算法或密码套件。
  • ISSUER:用于指定 TLS 证书的发行者(Issuer)。
  • SUBJECT:用于指定 TLS 证书的主题(Subject)。
resource_option指定用户的资源选项,指定多个资源选项时,使用英文空格隔开。
  • MAX_CONNECTIONS_PER_HOUR:用于指定每小时允许的最大连接数,integer 是一个整数,表示允许的最大连接数。
  • MAX_USER_CONNECTIONS:用于指定每个用户允许的最大连接数,integer 是一个整数,表示允许的最大连接数。

示例

  • 创建用户 test1 和 test2,并指定明文密码及用户允许的最大连接数

    CREATE USER IF NOT EXISTS test1 IDENTIFIED BY '********', test2 IDENTIFIED BY '********' WITH MAX_USER_CONNECTIONS 10;
  • 创建用户 test3,指定密文密码,同时指定必须使用 SSL 连接进行身份验证

    CREATE USER IF NOT EXISTS test3 IDENTIFIED BY PASSWORD '********' REQUIRE SSL;
  • 创建用户 test4,并指定需使用 mysql_native_password 身份验证插件

    CREATE USER IF NOT EXISTS test4 IDENTIFIED WITH mysql_native_password BY PASSWORD '********';

相关文档

  • 授予用户权限的操作可参见 授予权限

  • 可从 mysql.user 表中查看创建的用户信息,mysql.user 表的详细介绍可参见 mysql.user

  • 使用创建的用户连接 seekdb 的操作可参见 连接 seekdb 章节。