Airtable doesn’t yet support table-level permissions in terms of which columns you can see vs. not see if you want the end user to have direct edit access to the base. This has been a highly-requested feature for some time & I’m thinking at some point they’ll get there. As things stand today, you can configure who can create/delete records for a particular table, & who can edit table field, but beyond that permissions are at the base-level when it comes to who can see what. That said, there are some workarounds that can achieve what you are after.
The first option would be to utilize table syncing across multiple bases. Have the end-user base show all the user-editable fields, & then sync that back to a second “Admin” base that includes those fields as well as some other fields that you don’t want the user to see but want to be editable from an administrative perspective.
The second option is to utilize a portal solution (3rd party tool) that sits on top of your airtable data & manages the permissions that way. Something like MiniExtensions, Softr, Stacker, or Pory. This may be overkill depending on your use case but is an option nonetheless.
A third workaround for minor edits is to use a shared view, a form, and automations. You share a view with only the fields and records that you want visible. In that view include a button field that opens a form prefilled with record values. Include a text field that is prefilled with the record id of the original record. (If you are on a pro plan, you can use the prefilled forms app to help build the formula.) When the user submits the form with the edits, have an automation copy the new data back to the original record, using the prefilled record id to identify the original record.