I want to distribute an application using POstgreSQL but I want to know if there is any way to protect my database from viewing by others..

I don't want anyone to be able to see anything in the database including rows, tables, table structures, etc

I only want them to view from my application...

how can I do that?