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