If you give anyone as little as read-only access, consider that they can access all the data in the doc. It’s effectively a single file that gets served into a person’s browser.
That said, filtering and locking and disabling copy on a doc will prevent most of the average users from cracking it.
On displaying less details, you can set up different layouts on different views:
Generally if you need to limit access on a more granular level than entire doc, you have to create separate docs and sync portions of data through cross-doc. I’m working on a pack that should make this scenario easier to handle but so far it’s as tricky as this: