Лабораторная работа № 4
.docxОглавление
Использование представлений для улучшения безопасности 1
Использование WITH CHECK OPTION 1
Предоставление доступа 2
Шифрование текста инструкции CREATE VIEW 4
Использование представлений для улучшения безопасности
Использование WITH CHECK OPTION
Для определения составов, подлежащих усиленному техническому обслуживанию, либо замене заведующему парком техники (rem) требуется представление, в котором будут отображены только те составы, на которых было совершено более 400 рейсов. Так как в случае ошибки при добавлении или изменении записей данные составы могут не получить необходимого обслуживания, что в свою очередь может привести к аварии, в результате которой могут пострадать пассажиры, в представлении будет использован параметр «WITH CHECK OPRION».
Код представления:
CREATE VIEW Обслуживание
AS
SELECT [Номер состава], [Модель состава], [Количество совершённых рейсов]
FROM rem.Состав
where [Количество совершённых рейсов]>=400
with check option
В случае ошибочного ввода или изменения данных будет выдана ошибка.
Предоставление доступа
Представление, созданное в пункте 1.1, также будет использоваться работниками ремонтной бригады, но в силу должностных полномочий они не могут изменять или добавлять данные.
Роль работника ремонтной бригады выполняет пользователь «remworker» из группы пользователей «remworkers».
Данный пользователь имеет доступ только к данному представлению.
А также не может изменять или добавлять данные.
Шифрование текста инструкции CREATE VIEW
Для анализа доходности предприятия менеджеру по продажам необходимо представление, в котором будет отображён доход каждого маршрута за всё время, на основании полученных данных менеджер будет разрабатывать стратегию развития предприятия в сфере продаж. Так как данные в представлении напрямую влияют на развитие предприятия, для предотвращения фальсификации данных будет использоваться параметр «WITH ENCRYPTION».
Код представления:
create view Доходы with encryption
as
select distinct (Отправление+'-'+Прибытие) as Направление, (count(a.[Номер рейса]))*r.[Стоимость билета] as Доход from disp.Рейс r
inner join
disp.Маршрут m
on r.[Номер маршрута]=m.[Номер маршрута]
inner join
mang.Билет a
on r.[Номер рейса]=a.[Номер рейса]
group by Отправление,Прибытие,[Стоимость билета]
Доступ к проекту данного представления заблокирован.