The ability to publish to Tableau Server could be controlled by granting the users that you do not want to publish the Viewer role on Tableau Server or Tableau Online.
More information can be found here: Publish Data Sources and Workbooks - Tableau
Also I would check out this great comparison of Tableau Viewer and Reader. Tableau Viewer vs. Reader
As for disabling the ability to extract in Tableau Desktop. This would be a feature request and can be submitted to the Tableau Ideas forum: Ideas
Hope this helps!
and what if I want that this user should be able to publish ONLY Workbooks (but not Data Sources)? Is that possible?
Cédric Tran, You can't stop publishers to publish extracts. However you can disencourge them to use extracts if you do not create any extract refresh schedules - remember that only server admin can create schedules. If there is no schedule, it means that that can't refresh their extracts, most of them will not use extracts anymore although they can still publish workbooks with static extracts created from Desktop - but when data changes, they will have to re-publish the extracts again, a lot of work for them - but your goal is to disencourge them to use extracts.
Now do you really want to achieve? What is the problem you want to solve?