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
Может ли кто-нибудь помочь ограничить его.