diff options
author | Anel Husakovic <anel@mariadb.org> | 2021-07-27 17:37:44 +0200 |
---|---|---|
committer | Anel Husakovic <anel@mariadb.org> | 2021-07-27 17:37:44 +0200 |
commit | 420f846a1513ab5285bdaa7cfd3384669321d46b (patch) | |
tree | 05c0b83fcff91d812479c2a00f0cc7cab4c5e521 /sql/sql_acl.cc | |
parent | afe00bb7cce7de279e48a83ededc71b3f8cfafcf (diff) | |
download | mariadb-git-st-10.2-anel-MDEV-22874.tar.gz |
MDEV-2287: Create user fails with non-descriptive error messagest-10.2-anel-MDEV-22874bb-10.2-anel-MDEV-22874
Diffstat (limited to 'sql/sql_acl.cc')
-rw-r--r-- | sql/sql_acl.cc | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc index 89fecc92e9b..c7966c0caa9 100644 --- a/sql/sql_acl.cc +++ b/sql/sql_acl.cc @@ -10353,6 +10353,9 @@ bool mysql_create_user(THD *thd, List <LEX_USER> &list, bool handle_as_role) if (result) { + const char *c= (handle_as_role) ? "role already exists" : \ + "user already exists"; + append_str(&wrong_users, c, strlen(c)); my_error(ER_CANNOT_USER, MYF(0), (handle_as_role) ? "CREATE ROLE" : "CREATE USER", wrong_users.c_ptr_safe()); @@ -10463,10 +10466,14 @@ bool mysql_drop_user(THD *thd, List <LEX_USER> &list, bool handle_as_role) mysql_mutex_unlock(&acl_cache->lock); - if (result) + if (result){ + const char *c= (handle_as_role) ? "role doesn't exist" : \ + "user doesn't exist"; + append_str(&wrong_users, c, strlen(c)); my_error(ER_CANNOT_USER, MYF(0), (handle_as_role) ? "DROP ROLE" : "DROP USER", wrong_users.c_ptr_safe()); + } if (binlog) result |= write_bin_log(thd, FALSE, thd->query(), thd->query_length()); @@ -10556,9 +10563,11 @@ bool mysql_rename_user(THD *thd, List <LEX_USER> &list) mysql_mutex_unlock(&acl_cache->lock); - if (result) + if (result){ + const char *c= "user doesn't exist"; + append_str(&wrong_users, c, strlen(c)); my_error(ER_CANNOT_USER, MYF(0), "RENAME USER", wrong_users.c_ptr_safe()); - + } if (some_users_renamed && mysql_bin_log.is_open()) result |= write_bin_log(thd, FALSE, thd->query(), thd->query_length()); @@ -10621,6 +10630,8 @@ int mysql_alter_user(THD* thd, List<LEX_USER> &users_list) /* 'if exists' flag leads to warnings instead of errors. */ if (thd->lex->create_info.if_exists()) { + const char *c= "user doesn't exist"; + append_str(&wrong_users, c, strlen(c)); push_warning_printf(thd, Sql_condition::WARN_LEVEL_NOTE, ER_CANNOT_USER, ER_THD(thd, ER_CANNOT_USER), @@ -10629,6 +10640,8 @@ int mysql_alter_user(THD* thd, List<LEX_USER> &users_list) } else { + const char *c= "user doesn't exist"; + append_str(&wrong_users, c, strlen(c)); my_error(ER_CANNOT_USER, MYF(0), "ALTER USER", wrong_users.c_ptr_safe()); |