I would like to enable members of our Board of Directors to view our CiviCRM database without giving them permission to make changes. I.e., read-only access. Can this be done?
You didn't specify which CMS you're using but between your CMS permissioning and Civi ACLs, that should be possible. See here for some info: http://book.civicrm.org/user/initial-set-up/permissions-and-access-control/
Just a thought to consider though... if you want to present particular sets of data to your board members in a simplified way, creating Views (if you're using Drupal) or similar presentations might be a viable alternative. Sometimes the back-end, administrative angle of Civi can be a bit confusing for folks who don't use it regularly, particularly if they're not very technical.
Hope this helps, Lesley
In Drupal (and I would assume the same in other cms) add a new role and give 'access civicrm' permission and also give 'view all contacts'.
This is the minimum permissions setup and should allow them only to view contacts. You should not then need to do anything with ACL's.
You may also want to give the permission 'access all custom data' if you are using custom data fields.
Ensure you do not grant the 'edit all contacts' permission for obvious reasons.
You may then want to selectively also give them access to other components such as civicontribute etc.