You could use a view (or views) and a read-only user. The view could limit access to a single tenant and also abstract away changes to the schema if needed.
If you want more separation, you could use a read replica, again with a view.
You could also build an of ETL workflow to extract the tenants data, transform it if needed, and push it somewhere else.
Finally, make sure they pay for this. I'd scope out what they need and quote a price before doing anything except exploratory work.
We have an internal feature (we've yet to build) to offer a nightly database export of customers' data. We'll just send it to an s3 bucket they provide and let them take the data how they want. But this is a feature that will be restricted to our enterprise plans, most likely.