For any @DbLookup or @DbColumn that is run from a backgound macro, you need to put the ReplicaID of the database where the macro is being run into the ACL of the database which is being used for the source of the lookup.
A background macro is executed by $Chronos which doesn't have an ID by itself. That's why it uses the replica ID of the database containing the macro for authentication.