Is there a way to make the subscriber database read-only when using Transaction Replication?
Instead of altering the database to become read only, create a new login and add it to the db_datareader role of the subscriber database.