拒绝在sql server中插入、更新和删除存储过程

2j4z5cfb  于 2021-07-26  发布在  Java
关注(0)|答案(0)|浏览(217)
CREATE LOGIN reader with password='Test@123#';
CREATE USER ureader for login reader;
grant connect to ureader;

GRANT SELECT TO ureader
DENY INSERT, UPDATE, DELETE, ALTER, REFERENCES TO ureader

我已经使用上面的脚本创建了新的sql登录。基本上我想要一个只允许选择查询的sql用户。如果过程中确实有insert/update/delete语句,则不应允许它。

CREATE PROCEDURE  [dbo].[proc_testreport]
    @Mode int
AS           
BEGIN         
    IF(@Mode=1)      
    BEGIN       

        SELECT 1 AS 'DataValue','IP' AS 'DataText'
        UNION 
        SELECT 2 AS 'DataValue','OP' AS 'DataText'
        UNION
        SELECT 3 AS 'DataValue','MHC' AS 'DataText' 

        UPDATE [dbo].[TestTable] set test='F'

    END
END

当我执行上述过程时,它会更新表[dbo].[testtable]上的数据,但不允许更新它。

EXEC [Proc_TestReport] @Mode = 1

谁能帮忙限制一下。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题