Лабораторная работа № 5
.docxОглавление
Использование триггеров для улучшения безопасности 1
Использование триггеров для улучшения безопасности
Для анализа экономической деятельности менеджер по продажам использует данные из таблицы «Рейс», в которой хранятся записи о всех составленных рейсах. Для предотвращения фальсификации данных о составленных рейсах и, как следствие, данных о продажах необходимо разработать триггеры, которые не позволят диспетчеру, который составляет рейсы, изменить данные о прошедших рейсах либо внести запись о рейсе с прошедшей датой отправления.
Код триггера для изменения:
CREATE TRIGGER [disp].[Рейсы]
ON [disp].[Рейс]
for update,delete
AS
if exists(select * from deleted where [Дата отправления]<GETDATE())
begin
raiserror('ИЗМЕНЕНИЕ ПРОШЕДШИХ РЕЙСОВ ЗАПРЕЩЕНО',16,3)
rollback;
END
GO
Код триггера для добавления:
CREATE TRIGGER [disp].[Добавление]
ON [disp].[Рейс]
for insert
AS
if exists(select * from inserted where [Дата отправления]<GETDATE())
begin
raiserror('ДОБАВЛЕНИЕ РЕЙСА С ПРОШЕДЕШЕЙ ДАТОЙ ОТПРАВЛЕНИЯ ЗАПРЕЩЕНО',16,3)
rollback;
END
GO
При попытке изменения прошедших рейсов или внесения записи о рейсе с прошедшей датой отправления будет выведено сообщение об ошибке.