I found a way to do it using Postgres and an Extension called Veil. It actually works (designed for) using Views
for all operations (select, update,delete,insert) and verifying permissions in WHERE
clauses. But Veil just adds the maths for efficiently managing permission's information in memory instead of querying it every time. So with Veil, although you connect directly to DBMS you have just the row level access granted for you.
I modify my style with veil in some ways, for example, I began to use Triggers
instead of Views
for applying permissions restrictions.
I recommend you to study this solution and try to apply it's logic here.
i.e.: You make a select * from table
query and you get just what you're intent to (row level speaking).