mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
MDEV-24098 CREATE USER/ALTER USER PASSWORD EXPIRE/LOCK in either order
Reviewed-by: vicentiu@mariadb.org
This commit is contained in:
@ -139,4 +139,33 @@ show create user user1@localhost;
|
|||||||
CREATE USER for user1@localhost
|
CREATE USER for user1@localhost
|
||||||
CREATE USER `user1`@`localhost` ACCOUNT LOCK PASSWORD EXPIRE
|
CREATE USER `user1`@`localhost` ACCOUNT LOCK PASSWORD EXPIRE
|
||||||
drop user user1@localhost;
|
drop user user1@localhost;
|
||||||
|
#
|
||||||
|
# MDEV-24098 CREATE USER/ALTER USER PASSWORD EXPIRE/LOCK in
|
||||||
|
# either order.
|
||||||
|
#
|
||||||
|
create user user1@localhost PASSWORD EXPIRE ACCOUNT LOCK;
|
||||||
|
show create user user1@localhost;
|
||||||
|
CREATE USER for user1@localhost
|
||||||
|
CREATE USER `user1`@`localhost` ACCOUNT LOCK PASSWORD EXPIRE
|
||||||
|
drop user user1@localhost;
|
||||||
|
create user user1@localhost ACCOUNT LOCK PASSWORD EXPIRE;
|
||||||
|
show create user user1@localhost;
|
||||||
|
CREATE USER for user1@localhost
|
||||||
|
CREATE USER `user1`@`localhost` ACCOUNT LOCK PASSWORD EXPIRE
|
||||||
|
alter user user1@localhost PASSWORD EXPIRE NEVER ACCOUNT UNLOCK ;
|
||||||
|
show create user user1@localhost;
|
||||||
|
CREATE USER for user1@localhost
|
||||||
|
CREATE USER `user1`@`localhost` PASSWORD EXPIRE
|
||||||
|
alter user user1@localhost ACCOUNT LOCK PASSWORD EXPIRE DEFAULT;
|
||||||
|
show create user user1@localhost;
|
||||||
|
CREATE USER for user1@localhost
|
||||||
|
CREATE USER `user1`@`localhost` ACCOUNT LOCK PASSWORD EXPIRE
|
||||||
|
alter user user1@localhost PASSWORD EXPIRE INTERVAL 60 DAY ACCOUNT UNLOCK;
|
||||||
|
select * from mysql.global_priv where user='user1';
|
||||||
|
Host User Priv
|
||||||
|
localhost user1 {"access":0,"plugin":"mysql_native_password","authentication_string":"","account_locked":false,"password_last_changed":0,"password_lifetime":60}
|
||||||
|
show create user user1@localhost;
|
||||||
|
CREATE USER for user1@localhost
|
||||||
|
CREATE USER `user1`@`localhost` PASSWORD EXPIRE
|
||||||
|
drop user user1@localhost;
|
||||||
drop user user2@localhost;
|
drop user user2@localhost;
|
||||||
|
@ -143,6 +143,25 @@ alter user user1@localhost account lock;
|
|||||||
--echo #
|
--echo #
|
||||||
alter user user1@localhost PASSWORD EXPIRE;
|
alter user user1@localhost PASSWORD EXPIRE;
|
||||||
show create user user1@localhost;
|
show create user user1@localhost;
|
||||||
|
drop user user1@localhost;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-24098 CREATE USER/ALTER USER PASSWORD EXPIRE/LOCK in
|
||||||
|
--echo # either order.
|
||||||
|
--echo #
|
||||||
|
create user user1@localhost PASSWORD EXPIRE ACCOUNT LOCK;
|
||||||
|
show create user user1@localhost;
|
||||||
|
drop user user1@localhost;
|
||||||
|
create user user1@localhost ACCOUNT LOCK PASSWORD EXPIRE;
|
||||||
|
show create user user1@localhost;
|
||||||
|
alter user user1@localhost PASSWORD EXPIRE NEVER ACCOUNT UNLOCK ;
|
||||||
|
show create user user1@localhost;
|
||||||
|
alter user user1@localhost ACCOUNT LOCK PASSWORD EXPIRE DEFAULT;
|
||||||
|
show create user user1@localhost;
|
||||||
|
# note output needs to be corrected by MDEV-24114: password expire users cannot be unexpired
|
||||||
|
alter user user1@localhost PASSWORD EXPIRE INTERVAL 60 DAY ACCOUNT UNLOCK;
|
||||||
|
select * from mysql.global_priv where user='user1';
|
||||||
|
show create user user1@localhost;
|
||||||
|
|
||||||
drop user user1@localhost;
|
drop user user1@localhost;
|
||||||
drop user user2@localhost;
|
drop user user2@localhost;
|
||||||
|
@ -2902,7 +2902,7 @@ create:
|
|||||||
MYSQL_YYABORT;
|
MYSQL_YYABORT;
|
||||||
}
|
}
|
||||||
| create_or_replace USER_SYM opt_if_not_exists clear_privileges
|
| create_or_replace USER_SYM opt_if_not_exists clear_privileges
|
||||||
grant_list opt_require_clause opt_resource_options opt_account_locking opt_password_expiration
|
grant_list opt_require_clause opt_resource_options opt_account_locking_and_opt_password_expiration
|
||||||
{
|
{
|
||||||
if (unlikely(Lex->set_command_with_check(SQLCOM_CREATE_USER,
|
if (unlikely(Lex->set_command_with_check(SQLCOM_CREATE_USER,
|
||||||
$1 | $3)))
|
$1 | $3)))
|
||||||
@ -8032,7 +8032,7 @@ alter:
|
|||||||
} OPTIONS_SYM '(' server_options_list ')' { }
|
} OPTIONS_SYM '(' server_options_list ')' { }
|
||||||
/* ALTER USER foo is allowed for MySQL compatibility. */
|
/* ALTER USER foo is allowed for MySQL compatibility. */
|
||||||
| ALTER USER_SYM opt_if_exists clear_privileges grant_list
|
| ALTER USER_SYM opt_if_exists clear_privileges grant_list
|
||||||
opt_require_clause opt_resource_options opt_account_locking opt_password_expiration
|
opt_require_clause opt_resource_options opt_account_locking_and_opt_password_expiration
|
||||||
{
|
{
|
||||||
Lex->create_info.set($3);
|
Lex->create_info.set($3);
|
||||||
Lex->sql_command= SQLCOM_ALTER_USER;
|
Lex->sql_command= SQLCOM_ALTER_USER;
|
||||||
@ -8071,39 +8071,46 @@ alter:
|
|||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
opt_account_locking:
|
account_locking_option:
|
||||||
/* Nothing */ {}
|
LOCK_SYM
|
||||||
| ACCOUNT_SYM LOCK_SYM
|
|
||||||
{
|
{
|
||||||
Lex->account_options.account_locked= ACCOUNTLOCK_LOCKED;
|
Lex->account_options.account_locked= ACCOUNTLOCK_LOCKED;
|
||||||
}
|
}
|
||||||
| ACCOUNT_SYM UNLOCK_SYM
|
| UNLOCK_SYM
|
||||||
{
|
{
|
||||||
Lex->account_options.account_locked= ACCOUNTLOCK_UNLOCKED;
|
Lex->account_options.account_locked= ACCOUNTLOCK_UNLOCKED;
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
opt_password_expiration:
|
|
||||||
/* Nothing */ {}
|
opt_password_expire_option:
|
||||||
| PASSWORD_SYM EXPIRE_SYM
|
/* empty */
|
||||||
{
|
{
|
||||||
Lex->account_options.password_expire= PASSWORD_EXPIRE_NOW;
|
Lex->account_options.password_expire= PASSWORD_EXPIRE_NOW;
|
||||||
}
|
}
|
||||||
| PASSWORD_SYM EXPIRE_SYM NEVER_SYM
|
| NEVER_SYM
|
||||||
{
|
{
|
||||||
Lex->account_options.password_expire= PASSWORD_EXPIRE_NEVER;
|
Lex->account_options.password_expire= PASSWORD_EXPIRE_NEVER;
|
||||||
}
|
}
|
||||||
| PASSWORD_SYM EXPIRE_SYM DEFAULT
|
| DEFAULT
|
||||||
{
|
{
|
||||||
Lex->account_options.password_expire= PASSWORD_EXPIRE_DEFAULT;
|
Lex->account_options.password_expire= PASSWORD_EXPIRE_DEFAULT;
|
||||||
}
|
}
|
||||||
| PASSWORD_SYM EXPIRE_SYM INTERVAL_SYM NUM DAY_SYM
|
| INTERVAL_SYM NUM DAY_SYM
|
||||||
{
|
{
|
||||||
Lex->account_options.password_expire= PASSWORD_EXPIRE_INTERVAL;
|
Lex->account_options.password_expire= PASSWORD_EXPIRE_INTERVAL;
|
||||||
if (!(Lex->account_options.num_expiration_days= atoi($4.str)))
|
if (!(Lex->account_options.num_expiration_days= atoi($2.str)))
|
||||||
my_yyabort_error((ER_WRONG_VALUE, MYF(0), "DAY", $4.str));
|
my_yyabort_error((ER_WRONG_VALUE, MYF(0), "DAY", $2.str));
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
|
opt_account_locking_and_opt_password_expiration:
|
||||||
|
/* empty */
|
||||||
|
| ACCOUNT_SYM account_locking_option
|
||||||
|
| PASSWORD_SYM EXPIRE_SYM opt_password_expire_option
|
||||||
|
| ACCOUNT_SYM account_locking_option PASSWORD_SYM EXPIRE_SYM opt_password_expire_option
|
||||||
|
| PASSWORD_SYM EXPIRE_SYM opt_password_expire_option ACCOUNT_SYM account_locking_option
|
||||||
|
;
|
||||||
|
|
||||||
ev_alter_on_schedule_completion:
|
ev_alter_on_schedule_completion:
|
||||||
/* empty */ { $$= 0;}
|
/* empty */ { $$= 0;}
|
||||||
| ON SCHEDULE_SYM ev_schedule_time { $$= 1; }
|
| ON SCHEDULE_SYM ev_schedule_time { $$= 1; }
|
||||||
|
Reference in New Issue
Block a user