Use read-only database user to minimize security risks
You can make make read only tables, except: semaphor, watchdog, cache, cache_[ANOTHERS], sessions, and another tables, depend on installed modules, that can modify tables on guests visiting, login or form submissions, like statistics, flag and so on.
But I strongly DO NOT recommend this, because instead of showing read only site you may show white or errors screen.
Better is use Read only mode module, that make site read only (prevent form submissions and so on).
Another solution - make backup, then restore 1 per day via bash script. Samples.