我可以在SQL Server 2008 R2中设置只能执行某些存储过程的用户吗?

时间:2014-10-21 21:33:42

标签: sql-server tsql roles

我正在运行sql server 2008 r2&我想设置一个只能执行给定存储过程而没有其他读取权限的用户。我知道如何限制数据库访问和只读,但不知道如何限制除存储过程访问之外的所有内容。这个设置在哪里? 提前致谢!

1 个答案:

答案 0 :(得分:3)

-- Create a login 
USE [master]
GO
CREATE LOGIN [Proc_User] WITH PASSWORD  = N'SoMePa$$wOrD'
GO




-- Create a user in Target database with that login
USE [Test_DB]
GO

-- Create Test procedure
CREATE PROC dbo.TEST_PRCO 
AS
SELECT 1
GO

-- Create test User
CREATE USER [Proc_User] FOR LOGIN [Proc_User];
GO

-- Grant EXECUTE permissions on that procedure 
GRANT EXECUTE ON dbo.TEST_PRCO TO [Proc_User];
GO

现在该用户只有执行此存储过程和NOTHING ELSE PERIOD的权限。