Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовой СУБД Вьюгин А.А 4.docx
Скачиваний:
2
Добавлен:
20.09.2019
Размер:
2.45 Mб
Скачать

6.2.Отчетные хранимые процедуры и функции

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

Процедуры и функции:

PrintPodr -функция вывода работы подразделения с определенной даты

PrintElevator-Личная карточка лифта со всей историей

Пример отчета личной карточки лифта со всей историей:

В качестве входных параметров подаем личный номер лифта, для которого будет выводиться отчет. Далее используя эти параметры получаем данные овсех его поломках, ремонтах, техосмотрах и застреваний.(см. приложение 8)

--Личная карточка лифта со всей историей

CREATEFUNCTIONPrintElevator

(@NumVARCHAR(10))

RETURNS@ResultTABLE(

NameStreetVARCHAR(40),

PersonalNumberINT,

FIOVARCHAR(80),

TypeOfAppVARCHAR(80),

TypeOfDefectVARCHAR(80),

BreakDescriptionVARCHAR(256),

BreakLevelBIT,

BreakTimeDATETIME,

SpecialityVARCHAR(40)

)

AS

BEGIN

INSERTINTO@Result

SELECT

NameStreet [Улица],

PersonalNumber [№ лифта],

FIO [ФИО],

TypeOfApp [Видзаявки],

TypeOfDefect [Виднеисправности],

BreakDescription [Описаниеполомки],

BreakLevel [степень],

BreakTime [времяполомки],

Speciality [Специальность]

FROMStreetSTINNERJOINElevatorsEL

ONST.IDStreet=EL.IDStreet

ANDPersonalNumber=@Num

INNERJOINRequestRE

ONEL.IDElevator=RE.IDElevator

INNERJOINTypeOfApplicationTA

ONRE.IDTypeOfApplication=TA.IDTypeOfApplication

INNERJOINOrdersORD

ONRE.IDRequest=ORD.IDRequest

INNERJOINElectricianELC

ONORD.IDElectrician=ELC.IDElectrician

INNERJOINDefectsDFS

ONORD.IDOrders=DFS.IDOrders

INNERJOINDefectDF

ONDFS.IDDefect=Df.IDDefect

RETURN;

END

SELECT*FROMPrintElevator(6)

7.Обеспечение безопасности

В ходе изучения предметной области в рамках курсового проекта по дисциплине «Управление данными» были определены основные пользователи для работы с базой данных:

  • Диспетчер

  • Администратор

Диспетчер вносит/редактирует данные в нарядах, заявках, а также создает все необходимые отчеты

Администратор создает и редактирует все справочники

Диспетчеры

Администраторы

Заполнение/редактирование справочников

-

+

Заполнение/редактирование заявок

+

-

Заполнение/редактирование нарядов

+

-

Создание отчетов

+

-

Просмотр данных

+

+

Так как диспетчеров в организации несколько, а также возможно администраторов тоже будет 2 (посменно или же на пол ставки), было создано две роли:

  • Диспетчеры

  • Администраторы

--роль диспетчеры

CREATEROLEDispatchers

--рольАдминистраторы

CREATEROLEAdministrators

Ролям были выделены следующие права доступа(см. приложение 9):

Dispatchers

Administrators

Street

R

RWED

Electrician

R

RWED

TypeOfApplication

R

RWED

Defect

RWED

R

Elevator

R

RWED

Request

RWED

R

Orders

RWED

R

Defects

RWED

R

PrintElevator

R

-

PrintPodr

R

-

print1El

R

-

Printall

R

-

Где R – права на чтение, W - права на запись, E – права на редактирование, D – права на удаление.

В свою очередь на каждую роль были созданы пользователи (см. приложение 9):

  • Диспетчер1

  • Диспетчер2

  • Диспетчер3

  • Администратор1

  • Администратор2

-- Пользователь – Диспетчер1

USEElevator

CREATEUSERDispatcher1

WITHOUTLOGIN

-- Пользователь – Администратор1

USEElevator

CREATEUSERAdministrator1

WITHOUTLOGIN

Затем пользователи были добавлены в роли:

--добавление членов в роль Dispatchers базы данных

sp_addrolememberDispatchers,

Dispatcher1

sp_addrolememberDispatchers,

Dispatcher2

sp_addrolememberDispatchers,

Dispatcher3

--добавлениечленовврольAdministratorsбазыданных

sp_addrolememberAdministrators,

Administrator1

sp_addrolememberAdministrators,

Administrator2

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