To execute a batch operation asynchronously, the user needs a permission to create a batch. This is different when the same batch operation is executed synchronously, there the specific permissions (e.g. update, delete, etc. a process instance) are checked.
Given a user has the permission to create a batch and read only permissions for process definition and process instances.
When the user executes for example a batch operation to delete process instances synchronously, the batch operation will fail because of missing authorization.
But when the user executes the same batch operation asynchronously, the batch operation will succeed.
This difference should be documented.