diff --git a/src/box/alter.cc b/src/box/alter.cc
index 7aeab4648656a7c2d1e8aeed9938c9221739ed31..9a0bb2d2f58edf64ebfa06330c0e702b09b8e6da 100644
--- a/src/box/alter.cc
+++ b/src/box/alter.cc
@@ -3036,7 +3036,7 @@ on_replace_dd_user(struct trigger * /* trigger */, void *event)
 		struct user_def *user = user_def_new_from_tuple(new_tuple);
 		if (user == NULL)
 			return -1;
-		if (access_check_ddl(user->name, user->uid, user->uid,
+		if (access_check_ddl(user->name, user->uid, old_user->def->owner,
 				 old_user->def->type, BOX_PRIVILEGE_ALTER) != 0)
 			return -1;
 		auto def_guard = make_scoped_guard([=] {