It depends on whether the information is sequential or asynchronous. For example, if you need to fill in certain fields with information that is required in other tabs, the user should not be able to leave that tab until that information is (correctly) filled in.
If the information is asynchronous, the user should be able to switch to any tab because of Locus of Control law. With some caveats.
You mention required fields. If fields are required, the user should not be able to abandon the tab, as I said in the beginning.
However, this only applies to information the user is adding for the first time. If the user edits the data, we do not know if she abandons the tab just because she changed her mind. She may be thinking, “If I leave this tab without saving the changes, that’s like an abandonment,” but it could also be that she forgot to save (which is another problem because we do not know the user flow, e.g., do you save all the tabs at once or one at a time). In either case, you need some sort of confirmation dialog to accurately identify the user’s intentions.