I have created a custom permission to provide read only access to DatSource/DataSets (but still have the ability to create analysis / dashboards). Unfortunately even with this configuration I was still able to Delete the DataSet.
Expected Behavior - User should not be able to delete the dataset if they are not allowed to create/update it.