How to allow users to access (read, write, update) widgets, but not the tables themselves?

I have a table of Non Conformities, a table of Immediate Actions, Root Cause Analysis and one for Action Plans.

I don´t want users to access those tables directly. Specially because Immediate Actions, Root Cause Analysis and Action Plans are always related to the Non Conformity (one Non Conformity must have Immediate Actions, Root Causa Analysis (5 Whys) and one or more Action Plans). So I can´t have the users going directly into those tables and creating a Root Cause Analysis not related to a Non Conformity.

So I created a page with several Widgets for the user to acess the Non Conformity and create the records related to it.

How can I block the user from accessing the tables directly?

I mean, if i block a user from a table, he won’t be able to read and write at that table even from within a widget connected to a related table, right?

edit: sorry, posted above with my personal account (i guess it somehow automatically logged in the forum with Google? Don´t remember creating an account with it on the forum)