What exactly do you mean by "read only" in your question?
If you want the users to be able to take data out of the database, but not be able to put data into the database, then yes you can do that. Make each column definition an rvalue expression instead of an lvalue expression. The exact mechanics for doing this vary depending on column datatype and from one version of Oracle to another, but the process is usually pretty simple.
Yes read only option, you should not be able put the data inside, but you should be able to fetch the data. But you have given solution in Oracle. Is it a typo-error ? is this a solution in SQL Server. I will make it clear.
The below is an Oracle query :
create view view1 as select col1 from test with read only;
Please give the equivalent for the above in SQL Server.