ユーザーの変更

このステートメントは、TiDB 権限システム内の既存のユーザーを変更します。 MySQL 権限システムでは、ユーザーはユーザー名と接続元のホストの組み合わせです。これにより、IPアドレス192.168.1.1からのみ接続可能なユーザ'newuser2'@'192.168.1.1'を作成することができる。 2 人のユーザーに同じユーザー部分を持たせ、異なるホストからログインするときに異なる権限を持たせることもできます。

あらすじ

AlterUserStmt
ALTERUSERIfExistsUserSpecListRequireClauseOptConnectionOptionsPasswordOptionLockOptionAttributeOptionUSER()IDENTIFIEDBYAuthStringResourceGroupNameOption
UserSpecList
UserSpec,
UserSpec
UsernameAuthOption
Username
StringName@StringNamesingleAtIdentifierCURRENT_USEROptionalBraces
AuthOption
IDENTIFIEDBYAuthStringPASSWORDHashStringWITHStringNameBYAuthStringASHashString
PasswordOption
PASSWORDEXPIREDEFAULTNEVERINTERVALNDAYPASSWORDHISTORYDEFAULTNPASSWORDREUSEINTERVALDEFAULTNDAYFAILED_LOGIN_ATTEMPTSNPASSWORD_LOCK_TIMENUNBOUNDED
LockOption
ACCOUNTLOCKACCOUNTUNLOCK
AttributeOption
COMMENTCommentStringATTRIBUTEAttributeString
ResourceGroupNameOption
RESOURCEGROUPIdentifier

mysql> CREATE USER 'newuser' IDENTIFIED BY 'newuserpassword'; Query OK, 1 row affected (0.01 sec) mysql> SHOW CREATE USER 'newuser'; +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | CREATE USER for newuser@% | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | CREATE USER 'newuser'@'%' IDENTIFIED WITH 'mysql_native_password' AS '*5806E04BBEE79E1899964C6A04D68BCA69B1A879' REQUIRE NONE PASSWORD EXPIRE DEFAULT ACCOUNT UNLOCK | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec)

基本的なユーザー情報を変更する

ユーザーnewuserのパスワードを変更します。

mysql> ALTER USER 'newuser' IDENTIFIED BY 'newnewpassword'; Query OK, 0 rows affected (0.02 sec) mysql> SHOW CREATE USER 'newuser'; +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | CREATE USER for newuser@% | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | CREATE USER 'newuser'@'%' IDENTIFIED WITH 'mysql_native_password' AS '*FB8A1EA1353E8775CA836233E367FBDFCB37BE73' REQUIRE NONE PASSWORD EXPIRE DEFAULT ACCOUNT UNLOCK | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec)

ユーザーをロックnewuser :

ALTER USER 'newuser' ACCOUNT LOCK;
Query OK, 0 rows affected (0.02 sec)

newuserの属性を変更します。

ALTER USER 'newuser' ATTRIBUTE '{"newAttr": "value", "deprecatedAttr": null}'; SELECT * FROM information_schema.user_attributes;
+-----------+------+--------------------------+ | USER | HOST | ATTRIBUTE | +-----------+------+--------------------------+ | newuser | % | {"newAttr": "value"} | +-----------+------+--------------------------+ 1 rows in set (0.00 sec)

newuserのコメントをALTER USER ... COMMENT使用して変更します。

ALTER USER 'newuser' COMMENT 'Here is the comment'; SELECT * FROM information_schema.user_attributes;
+-----------+------+--------------------------------------------------------+ | USER | HOST | ATTRIBUTE | +-----------+------+--------------------------------------------------------+ | newuser | % | {"comment": "Here is the comment", "newAttr": "value"} | +-----------+------+--------------------------------------------------------+ 1 rows in set (0.00 sec)

ALTER USER ... ATTRIBUTE使用してnewuserのコメントを削除します。

ALTER USER 'newuser' ATTRIBUTE '{"comment": null}'; SELECT * FROM information_schema.user_attributes;
+-----------+------+---------------------------+ | USER | HOST | ATTRIBUTE | +-----------+------+---------------------------+ | newuser | % | {"newAttr": "value"} | +-----------+------+---------------------------+ 1 rows in set (0.00 sec)

newuserの自動パスワード有効期限ポリシーを、 ALTER USER ... PASSWORD EXPIRE NEVERによって期限切れにならないように変更します。

ALTER USER 'newuser' PASSWORD EXPIRE NEVER;
Query OK, 0 rows affected (0.02 sec)

newuserのパスワード再利用ポリシーを変更し、 ALTER USER ... PASSWORD REUSE INTERVAL ... DAY使用して過去 90 日以内に使用されたパスワードの再利用を禁止します。

ALTER USER 'newuser' PASSWORD REUSE INTERVAL 90 DAY;
Query OK, 0 rows affected (0.02 sec)

ユーザーにバインドされているリソース グループを変更する

ユーザーnewuserのリソース グループをrg1に変更するには、 ALTER USER ... RESOURCE GROUPを使用します。

ALTER USER 'newuser' RESOURCE GROUP rg1;
Query OK, 0 rows affected (0.02 sec)

現在のユーザーにバインドされているリソース グループをビュー。

SELECT USER, JSON_EXTRACT(User_attributes, "$.resource_group") FROM mysql.user WHERE user = "newuser";
+---------+---------------------------------------------------+ | USER | JSON_EXTRACT(User_attributes, "$.resource_group") | +---------+---------------------------------------------------+ | newuser | "rg1" | +---------+---------------------------------------------------+ 1 row in set (0.02 sec)

ユーザーをリソース グループにバインド解除します。つまり、ユーザーをdefaultリソース グループにバインドします。

ALTER USER 'newuser' RESOURCE GROUP `default`; SELECT USER, JSON_EXTRACT(User_attributes, "$.resource_group") FROM mysql.user WHERE user = "newuser";
+---------+---------------------------------------------------+ | USER | JSON_EXTRACT(User_attributes, "$.resource_group") | +---------+---------------------------------------------------+ | newuser | "default" | +---------+---------------------------------------------------+ 1 row in set (0.02 sec)

こちらも参照

このページは役に立ちましたか?