跳到主要内容
版本:V1.0.0

ALTER USER

描述

该语句主要用于执行以下操作:

  • 修改 seekdb 用户的密码。

  • 锁定或者解锁用户,且被锁定的用户不允许登录数据库。

    信息

    除了修改当前用户的口令之外,必须拥有 CREATE USER 的权限,才可以执行本命令。

  • 设置用户在登录时默认激活的角色。

  • 修改用户的资源选项。

权限要求

执行 ALTER USER 语句需要当前用户具备 CREATE USER 管理权限。有关 seekdb 权限的详细介绍,参见 seekdb 的权限分类

语法

  • 修改用户密码:

    ALTER USER 'user_name'
    IDENTIFIED [WITH auth_plugin] BY 'password' | IDENTIFIED [WITH auth_plugin] AS 'auth_string'
  • 锁定用户:

    ALTER USER 'user_name' [ACCOUNT LOCK | ACCOUNT UNLOCK];
  • 设置用户在登录时默认激活的角色:

    ALTER USER user_name DEFAULT ROLE {NONE | ALL | role_name [, role_name ...]};
  • 修改用户的资源选项:

    ALTER USER user_name WITH  resource_option [resource_option];

    resource_option:
    MAX_CONNECTIONS_PER_HOUR integer
    | MAX_USER_CONNECTIONS integer

参数解释

参数描述
user_name指定用户名称。
password指定新密码。
IDENTIFIED WITH auth_plugin AS 'auth_string'将账户身份验证插件设置为 auth_plugin,并将 auth_string 值存储在 mysql.user表中。如果插件需要哈希字符串,则假定该字符串已经是插件所需的哈希格式。
ACCOUNT LOCK指定锁定用户。
ACCOUNT UNLOCK指定解锁用户。
NONE指定停用用户被授予的所有角色。
ALL指定激活用户下所有的角色。
role_name指定角色的名称,激活多个角色时,角色名用英文逗号(,)隔开。
resource_option指定用户的资源选项,指定多个资源选项时,使用英文空格隔开。
  • MAX_CONNECTIONS_PER_HOUR:用于指定每小时允许的最大连接数,integer 是一个整数,表示允许的最大连接数。
  • MAX_USER_CONNECTIONS:用于指定每个用户允许的最大连接数,integer 是一个整数,表示允许的最大连接数。

示例

  • 执行以下命令将用户 sqluser01 的密码修改为 ******

    ALTER USER 'sqluser01' IDENTIFIED BY '******';
  • 执行以下命令指定身份验证插件。

    ALTER USER 'sqluser01'
    IDENTIFIED WITH mysql_native_password
    AS '*6C8989366EAF75BB670AD8EA7A7FC1176A95CEF4';
  • 锁定用户 obsqluser01

    ALTER USER 'obsqluser01' ACCOUNT LOCK;
  • 解锁用户 obsqluser01

    ALTER USER 'obsqluser01' ACCOUNT UNLOCK;
  • 指定用户 user001 在登录时,默认激活用户被授予的 role001role002 角色。

    ALTER USER user001 DEFAULT ROLE role001, role002;

相关文档