ALTER USER

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

语法图

  1. AlterUserStmt ::=
  2. 'ALTER' 'USER' IfExists (UserSpecList RequireClauseOpt ConnectionOptions PasswordOrLockOptions | 'USER' '(' ')' 'IDENTIFIED' 'BY' AuthString)
  3. UserSpecList ::=
  4. UserSpec ( ',' UserSpec )*
  5. UserSpec ::=
  6. Username AuthOption
  7. Username ::=
  8. StringName ('@' StringName | singleAtIdentifier)? | 'CURRENT_USER' OptionalBraces
  9. AuthOption ::=
  10. ( 'IDENTIFIED' ( 'BY' ( AuthString | 'PASSWORD' HashString ) | 'WITH' StringName ( 'BY' AuthString | 'AS' HashString )? ) )?

示例

  1. CREATE USER 'newuser' IDENTIFIED BY 'newuserpassword';
  1. Query OK, 1 row affected (0.01 sec)
  1. SHOW CREATE USER 'newuser';
  1. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  2. | CREATE USER for newuser@% |
  3. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4. | CREATE USER 'newuser'@'%' IDENTIFIED WITH 'mysql_native_password' AS '*5806E04BBEE79E1899964C6A04D68BCA69B1A879' REQUIRE NONE PASSWORD EXPIRE DEFAULT ACCOUNT UNLOCK |
  5. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6. 1 row in set (0.00 sec)
  1. ALTER USER 'newuser' IDENTIFIED BY 'newnewpassword';
  1. Query OK, 0 rows affected (0.02 sec)
  1. SHOW CREATE USER 'newuser';
  1. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  2. | CREATE USER for newuser@% |
  3. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4. | CREATE USER 'newuser'@'%' IDENTIFIED WITH 'mysql_native_password' AS '*FB8A1EA1353E8775CA836233E367FBDFCB37BE73' REQUIRE NONE PASSWORD EXPIRE DEFAULT ACCOUNT UNLOCK |
  5. +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  6. 1 row in set (0.00 sec)

MySQL 兼容性

  • 在 MySQL 中,ALTER 语句用于更改属性,例如使密码失效。但 TiDB 尚不支持此功能。

另请参阅