Whether or not a VIEW will work for you depends on the database your are using. Here's a link that discusses views pretty well.
http://manuals.sybase.com/onlinebooks/group-as/asg1250e/sqlug/@Generic__BookTextView/28863
Briefly, in your SELECT statements you replace the name of a table with the name of a view (SQL syntax is exactly the same, a view is sometimes called a virtual table).
Here's a silly example. Suppose you have a table named someTable with a column called ID. You could select all the rows that have ID > 100 with this:
select * from someTable where ID > 100
Or you could define this view:
create view someView as select * from someTable where ID > 100
Now you would select the same rows as above with this:
select * from someView
This example is silly because the "select ..." statement that created the view is so simple; but in your case, you could hide the additional logic that restricts what the user is allowed to see in the "create view" with a more complicated select.