Jus*_*ant 3 sql-server database-permissions sql-server-2008-r2
我们的SQL Server数据库具有报告功能,允许调用者读取但不写入任何表,因为用户(或者更准确地说,由代表用户操作的Web应用程序打开的连接)仅具有datareader权限.数据库.
我们希望能够编写一个存储过程,这是一个特殊的"清理报告",它将在运行另一个报告之前清除旧缓存数据的数据库.我们希望上面的同一个只读用户能够运行这个存储过程.存储过程中的查询将执行DELETE操作,但我们不希望让用户能够删除除调用此过程之外的任何内容.
我知道模块签名,但希望避免处理证书的复杂性.
还有其他解决方案吗?如果这很重要,我们正在使用SQL标准身份验证.
CREATE PROCEDURE dbo.my_procedure
WITH EXECUTE AS OWNER
AS
BEGIN
-- do your stuff here
END
GO
GRANT EXEC ON dbo.my_procedure TO [your_datareader_member];
GO
Run Code Online (Sandbox Code Playgroud)