Should all roles be allowed CRUD operation on the database?

Users don’t have direct access to the database, so in a sense your question doesn’t make sense. Anything WordPress does is through, ultimately, the $wpdb object using the credentials in wp-config.php (unless a plugin or theme creates a new WPDB object to access a different database).

So what a user can or cannot do is controlled by WordPress Core code with possible modification by plugins and themes. If you want to know what a role can do, just take a look at the Codex page for Users and Roles. “Subscribers” can’t really do that much:

read

  • Since 2.0
  • Allows access to Administration
    Panel options:

    • Dashboard
    • Users > Your Profile
  • Used
    nowhere in the core code except the menu.php

But “Subscribers” must be able to do something, right? Just to be able to alter basic profile information– email address, password, etc.– which, really, is all a “Subscriber” can do.