Создание представления в окне в Query Editor (Редактор запросов)
Создайте новое представление. Для этого в окне SQL Server Management Studio выберите в меню Создать запрос и в окне редактора введите следующий текст:
USE Postavki;
GO
CREATE VIEW PostDet.SUP_P
AS SELECT S, STATUS, CITY
FROM PostDet.tblS WHERE STATUS > 10;
Нажмите Выполнить. Представление будет создано.
Предоставление привилегий осуществляется с помощью оператора GRANT. Предоставьте привилегии пользователю Fred.
USE Postavki;
GO
GRANT SELECT (S,STATUS)
ON PostDet.SUP_P
TO [FS-64C67299CCAR\Fred];
Переключитесь на учетную запись Fred, войдите на сервер и выполните следующие запросы:
1.SELECT STATUS FROM PostDet.SUP_P;
2.SELECT CITY FROM PostDet.SUP_P;
Оцените полученные результаты.
Отмена ранее предоставленных привилегий осуществляется с помощью оператора REVOKE.
Самостоятельно создайте запрос к созданному ранее представлению.
Управление доступом к хранимым процедурам и определяемым пользователем функциям.
Tакие программируемые объекты, как хранимые процедуры и определяемые пользователем функции, имеют свой контекст безопасности. Чтобы выполнить хранимые процедуры и определяемые пользователем функции, пользователям баз данных необходимы разрешения.
Управление безопасностью для хранимых процедур.
Хранимая процедура – это программа, написанная на языке СУБД, скомпилированная на машинный язык и сохраненная для многократного и более эффективного выполнения. Хранимые процедуры могут реализовать логику, плохо укладывающуюся в рамки языка запросов. Наряду с возможностью передачи в хранимую процедуру переменных, существует возможность извлечения значений из хранимой процедуры.
Разработчику необходимо иметь разрешение на создание хранимой процедуры, а пользователям нужны соответствующие разрешения, чтобы выполнить эту хранимую процедуру.
Создайте хранимую процедуру, которая будет выводить номера и имена поставщиков, имеющих определенный статус.
Войдите на сервер с учетной записью администратора. В окне создания запросов введите код:
USE Postavki;
GO
CREATE PROCEDURE PostDet.SUP_STAT @Rstatus INT
AS
BEGIN
SELECT * FROM PostDet.tblS WHERE STATUS > @Rstatus
END
Выполнитеи сохраните процедуру.
Когда приложение вызывает хранимую процедуру, SQL Serverпроверяет, имеет ли текущий пользователь базы данных разрешение EXECUTEдля этойхранимой процедуры. В следующем примере разрешение EXECUTEпредоставляется пользователю Fred.
USE Postavki;
GO
GRANT EXECUTE ON PostDet.SUP_STAT
TO[FS-64C67299CCAR\Fred];
Хранимую процедуру можно выполнить без указания перед ее именем инструкции EXECUTE. В этом случае вызов хранимой процедуры должен быть первой командой в пакете команд.
Переключитесь на учетную запись Fred .
Протестируйте созданную хранимую процедуру. Для этого в окне создания запросавведите следующий текст: PostDet. SUP_STAT 10;
НажмитеВыполнитьи оцените результат.
Другой вариант вызова этой процедуры:
USE Postavki;
GO
DECLARE @Zstatus INT
SET @Zstatus = 20
EXEC PostDet. SUP_STAT @Zstatus;
Для удаления хранимой процедуры используется команда DROP PROCEDURE.
DROP PROCEDURE name.
Для отмены предоставленного ранее разрешения на выполнение хранимой процедуры служит оператор REVOKE. Чтобы запретить выполнение хранимой процедуры пользователю используют оператор DENY.
Самостоятельно отмените разрешение Fred на выполнение процедурыSUP_STAT.
Управление безопасностью определяемых пользователем функций.
Существуют два основных вида определяемыхпользователем функций: функции, возвращающие скалярное значение, и функции, возвращающие табличное значение. В зависимости от типа определяемой пользователем функции, пользователю необходимо предоставить одно из двух разрешений: EXECUTE или SELECT.