On SQL Server 2016 and Azure SQL Database you can use
Row-Level Security
Or, if you don't plan on having thousands of small customers, you can provision a separate database for each one. Having the customers in separate databases has a number of real advantages beyond security (and the ability to assure each customer that
their data is not co-mingled with data from other customers).
You get per-customer backup and restore, per-customer patching and deployment, per-customer query plans, the option to scale out across multiple servers, simpler schema design, no need to build split/merge logic to extract customer data, etc.
David
David http://blogs.msdn.com/b/dbrowne/