Locking fields on a content type
Refer to the field api documentation here. You do not have to add permissions to block the delete. All you need to do is add the "locked" attribute to the field definition.


  locked (integer): Whether or not the field is available for editing.
  If TRUE, users can't change field settings or create new instances of
  the field in the UI. Defaults to FALSE.