This commit is contained in:
pufit 2024-11-20 15:16:27 -08:00 committed by GitHub
commit 334c91bbef
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 8 additions and 2 deletions

View File

@ -168,6 +168,12 @@ AccessRights ContextAccess::addImplicitAccessRights(const AccessRights & access,
res |= show_databases;
}
static const AccessFlags alter_delete = AccessType::ALTER_DELETE;
static const AccessFlags select = AccessType::SELECT;
static const AccessFlags move_partition = AccessType::ALTER_MOVE_PARTITION;
if ((res & alter_delete) && (res & select) && level <= 2)
res |= move_partition;
max_flags |= res;
return res;

View File

@ -467,11 +467,11 @@ AccessRightsElements InterpreterAlterQuery::getRequiredAccessForCommand(const AS
required_access.emplace_back(AccessType::ALTER_MOVE_PARTITION, database, table);
break;
case DataDestinationType::TABLE:
required_access.emplace_back(AccessType::SELECT | AccessType::ALTER_DELETE, database, table);
required_access.emplace_back(AccessType::ALTER_MOVE_PARTITION, database, table);
required_access.emplace_back(AccessType::INSERT, command.to_database, command.to_table);
break;
case DataDestinationType::SHARD:
required_access.emplace_back(AccessType::SELECT | AccessType::ALTER_DELETE, database, table);
required_access.emplace_back(AccessType::ALTER_MOVE_PARTITION, database, table);
required_access.emplace_back(AccessType::MOVE_PARTITION_BETWEEN_SHARDS);
break;
case DataDestinationType::DELETE: