By default, SharePoint does not have such feature which allow user set view permission below list level.
However there is a bullet-proof 100% workaround that can be applied out of the box..
This approach first makes the list only accessible via personal views. We then customize a personal view for each user, and finally secure the list by preventing the user from changing their personal view.
- As Site Admin user, copy a suitable permission level (eg Limited Contribute) for the list, but uncheck the ability to manage personal views (down the bottom) and name it “Limited Contribute – default view only”.
- Modify the default “All Items” view by adding the filter “ID, is equal to, 0”. This view no longer displays anything.
- Now set permissions for the list from List Settings – add the people (not groups) who get access to the list and initially give them “Limited Contribute” so they can all still create a personal view.
- This is the tedious part. Login as each user one by one. Create a Personal view for the current user based on the “All Items” public view. Remove the “ID is equal to 0” filter and add the filter constraints you want to apply for this particular user. Even if all users have the same filter constraint you have to do this once for each user, as they all get independent personal views.
- Login as site Admin and bulk change all the users permissions to the permissions set “Limited Contribute – default view only” that prevents them managing Personal views.
- Hey presto, its done!
You can mix permission sets too – just make sure you remove the ability to manage personal views for each user or the list security is lost.