Here is a script that creates a new user and gives him the ability to select only permissions for a specific view.
USE [master] GO CREATE LOGIN [LimitedUser] WITH PASSWORD=N'testPass', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF GO USE [TestDB] GO CREATE USER [LimitedUser] FOR LOGIN [LimitedUser] GO use [TestDB] GO GRANT SELECT ON [dbo].[myView] TO [LimitedUser] GO
Edit
Instead of doing this for a specific user, you may want to use roles instead.
USE [TestDB] GO CREATE ROLE [LimitedRole] GO GRANT SELECT ON [dbo].[TestView] TO [LimitedRole] GO EXEC sp_addrolemember N'LimitedRole', N'LimitedUser' GO
Thus, if you have several users, for example, in Windows authentication mode, you can have many users, everyone can be granted access to this role. Thus, when adding / removing views, you do not need to touch each user.
source share