我需要限制用户对 SELECT、INSERT、UPDATE 和 DELETE 的访问,以便用户只能使用我提供的存储过程来管理数据。
所以,例如
SELECT * FROM Table1
应该返回
The SELECT permission was denied on the object 'Table1'
但是,如果将存储过程 SelectTable1 定义为
CREATE PROCEDURE SelectTable1
AS
BEGIN
SELECT * FROM Table1
END
(真实的包含过滤和参数,所以不是没有意义,像上面那个)
用户应该成功执行它并获得结果集。
但显然,我没有成功实现这组权限。有人可以指点我一些具体的教程吗?MSDN 不是很有帮助。
数据库是 SQL Server 2012,所有对象(表和存储过程)都在自定义架构中。