Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
拒绝在SQL Server中执行存储过程的插入、更新和删除_Sql_Security_Sql Update_Roles_Rights - Fatal编程技术网

拒绝在SQL Server中执行存储过程的插入、更新和删除

拒绝在SQL Server中执行存储过程的插入、更新和删除,sql,security,sql-update,roles,rights,Sql,Security,Sql Update,Roles,Rights,我已经使用上面的脚本创建了新的SQL登录。 基本上我想要一个只允许选择查询的SQL用户。 若过程中确实包含Insert/Update/Delete语句,则不应允许它 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, AL

我已经使用上面的脚本创建了新的SQL登录。 基本上我想要一个只允许选择查询的SQL用户。 若过程中确实包含Insert/Update/Delete语句,则不应允许它

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
当我执行上述过程时,它会更新表[dbo].[TestTable]上的数据,但不允许更新它

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

任何人都可以帮助限制它。

当您执行该过程时,您是以ureader身份登录的吗?当您执行该过程时,您是以ureader身份登录的吗?
EXEC [Proc_TestReport] @Mode = 1