Install Bitcoin Core on remote machine B and call it through JSON-RPC. Assuming machine A is local to you accessing private keys should not be an issue.
Put the wallet.dat on a network share. Then make a symlink to it from the data directory.
Those approaches works only if we assumes, that we use one-to-one - wallet.dat to blockchain, what if I want one blockchain and many wallet.dat's ?
Means, I want use Bitcoin Core in the "light wallet's way" - like Electrum, so I have many wallet.dat's and one blockchain.
That is, to my knowledge, impossible. The way Bitcoin Core is designed makes it impossible for several instances of the client accessing the blockchain at the same time.
You can always either combine the wallet.dat together by dumping the private keys and importing them or switch them out when needed.