By doing this you create a abstraction layer for users but hide actual dbs from themAs I understand users will be mostly doing data analysis as against doing any transactions (DML operations) so report model should suffice IMO. If your scenario is different, explain us what clients will be using db for?------------------------------------------------------------------------------------------------