Another approach is to have to the DB run in a secure enclave (SGX, Nitro, etc.), the data encrypted in the enclave process during disk I/O and the querying clients also in their own enclaves with encrypted communication between the enclaves. While there are edge cases, this is a more general "treat the db as black box" approach.