title: Multi tenancy with Schemas and RLS in PostgreSQL
body: <p>I am new to Postgres/databases and am thinking of how to design a multi tenant application. I read some of the basic stuff such as schemas supported by Postgres and Row Level Security which is added since Postgres 9.5. So in my case a tenant can have many users. Two different tenants can have users with same name ( Kind of like a hierarchy).  So at the top level, I can have a schema for each tenant.  And then within each there is a RLS policy for users.  Can this be done in Postgres and is this a good option ? With RLS, I will need a role for each user. This will probably blow up since my understanding is that roles are global across schemas.</p>
  
  <p>Or other thing I can think of is that I keep everything in same tables but have policies which honor the user as well as tenant columns in the table. Is this possible in Postgres ? For example, when I add a policy with current_users = "column_name" ,can I add  another condition where I add a check that the top level tenant name matches.  But where and how is this set, similar to SET ROLE  "user"</p>
  
  <p>Bit confused about the right approach to use.</p>