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