As far as I know this is not possible. You can grant a user SVN access or not grant a user SVN access. There is currently no such thing as read only SVN access.
The upside is, if you give them SVN access and they change something, this change will always be logged.
Yep just give them a specific user role in your project. The default end-user role in your projects for example, can only view, but not commit. You could also create new roles that could only view development but don't have any access to the rest of the project, like user stories. (I haven't tried this tough)