Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовой по Сапрыкину.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
378.88 Кб
Скачать

1.5Выбор значений полей из таблиц бд для получения списка заказов салона красоты

Для вывода на экран списка заказов используется оператор SELECT. Так как выборка осуществляется из нескольких связанных таблиц, нужно также применить оператор INNER JOIN, предназначенный для объединения таблиц по ключевым полям, значения которых совпадают. Поставленная задача решается с помощью следующего запроса:

SELECT Z.Nomer_Zakaza,Z.Data_Zakaza,C.FIO_Clienta,C.Pol_Clienta,C.Telefon_Clienta,M.FIO_Mastera,M.Kvalifikacia_Mastera,K.Kosm_Sredstvo,K.Firma,Mes.Adres,U.Usluga,U.Prodolzhitelnost,U.Stoimost_rub

FROM Zakazy as Z

INNER JOIN Clienty as C

ON Z.Client_Salona_ID=C.Client_Salona_ID

INNER JOIN Mastera as M

ON Z.Master_Salona_ID=M.Master_Salona_ID

INNER JOIN Kosm_Sredstva as K

ON Z.Kosm_Sredstvo_ID=K.Kosm_Sredstvo_ID

INNER JOIN Mesta as Mes

ON Z.Mesto_ID=Mes.Mesto_ID

INNER JOIN Uslugi as U

ON Z.Usluga_ID=U.Usluga_ID

Результатом является выборка, представленная на рисунке 3 и содержащая информацию о:

  • номере заказа и дате оказания услуги;

  • клиенте – его пол и номер телефона;

  • мастере, оказывающем услугу, и его квалификации;

  • косметическом средстве, используемом для оказания услуги;

  • адресе места, где оказывается услуга салона красоты;

  • непосредственно самой услуге – её стоимости и продолжительности.

Рисунок 3 – Список заказов салона красоты

1.6Разграничение прав доступа

Некоторые пользователи, исходя из соображений безопасности и сохранения конфиденциальности, должны иметь ограниченный доступ к определенным таблицам. В связи с этим определяем следующие роли, которые могут иметь ограниченные права на создание, удаление или просмотр некоторых таблиц:

Директор салона красоты (Director) – имеет полный доступ ко всем таблицам и права на обновление, добавление, удаление и чтение записей в них.

Логист (Logist) – в салоне красоты имеется логист, который отвечает за закупку необходимых косметических средств. Он имеет право для чтения всех таблиц, кроме таблицы «Косметические средства», в которой также может добавлять, обновлять и удалять записи.

Старший мастер (St_Master) – несет ответственность за пополнение списка услуг и имеет право добавлять, обновлять, удалять и читать записи в таблице «Услуги», во всех остальных – только чтение.

По умолчанию при создании ролей запрещены все действия. Поэтому для каждой роли назначаем возможность проводить некоторые манипуляции с таблицами с помощью оператора GRANT, согласно вышеперечисленным правилам.

Необходимо создать логин, пароль и пользователя, которому назначается определенная роль с помощью хранимой процедуры SP_addrolemember.

Создание роли директора салона красоты и назначение её пользователю Калымову В.В., имеющему логин Kalymov, осуществляется с помощью следующего запроса:

CREATE ROLE Director

GRANT INSERT,UPDATE,DELETE,SELECT ON Mesta

TO Director

GRANT INSERT,UPDATE,DELETE,SELECT ON Clienty

TO Director

GRANT INSERT,UPDATE,DELETE,SELECT ON Mastera

TO Director

GRANT INSERT,UPDATE,DELETE,SELECT ON Uslugi

TO Director

GRANT INSERT,UPDATE,DELETE,SELECT ON Kosm_Sredstva

TO Director

GRANT INSERT,UPDATE,DELETE,SELECT ON Zakazy

TO Director

CREATE LOGIN Kalymov

WITH PASSWORD='directorrr'

CREATE USER Kalymov_VV

FOR LOGIN Kalymov

EXEC SP_addrolemember

@rolename=Director,

@membername=Kalymov_VV

Логист имеют полный доступ только к таблице «Косметические средства», в остальных – только чтение. Запрос для создания роли Logist и назначения её пользователю Каримову А.К., осуществляется с помощью следующего запроса:

CREATE ROLE Logist

GRANT SELECT ON Mesta

TO Logist

GRANT SELECT ON Clienty

TO Logist

GRANT SELECT ON Mastera

TO Logist

GRANT SELECT ON Uslugi

TO Logist

GRANT INSERT,UPDATE,DELETE,SELECT ON Kosm_Sredstva

TO Logist

GRANT SELECT ON Zakazy

TO Logist

CREATE LOGIN Karimov

WITH PASSWORD='KarAK'

CREATE USER Karimov_AK

FOR LOGIN Karimov

EXEC SP_addrolemember

@rolename=Logist,

@membername=Karimov_AK

Старший мастер может просматривать все таблицы базы данных в режиме «только чтение», кроме таблицы «Услуги», где он также имеет право удалять, добавлять и обновлять записи. С помощью представленного ниже запроса создается пользователь Ватрушкина А.П. с ролью St_Master:

CREATE ROLE St_Master

GRANT SELECT ON Mesta

TO St_Master

GRANT SELECT ON Clienty

TO St_Master

GRANT SELECT ON Mastera

TO St_Master

GRANT INSERT,UPDATE,DELETE,SELECT ON Uslugi

TO St_Master

GRANT SELECT ON Kosm_Sredstva

TO St_Master

GRANT SELECT ON Zakazy

TO St_Master

CREATE LOGIN Vatrushkina

WITH PASSWORD='Vatr'

CREATE USER Vatrushkiba_AP

FOR LOGIN Vatrushkina

EXEC SP_addrolemember

@rolename=St_Master,

@membername=Vatrushkiba_AP

Разграничение прав для всех пользователей, имеющих доступ к БД, сделано. Теперь, при попытке изменить данные таблицы, сотрудники, не имеющие на это разрешения, получат сообщение об ошибке. Подобный подход позволяет защитить данные от несанкционированного доступа, создать определенную политику безопасности, где сотрудники обладают набором прав работы с БД в соответствии с занимаемой ими должностью.