
- •Содержание
- •Техническое задание
- •Анализ предметной области
- •1.2 Постановка задачи
- •2. Технический проект информационной системы
- •2.1 Функциональная модель
- •2.1.1 Контекстная диаграмма и диаграммы детализации процессов
- •2.1.2 Диаграмма дерева узлов
- •2.2 Информационная модель
- •2.2.1 Идентификация сущностей и связей. Er-диаграмма логического уровня.
- •2.2.2 Er-диаграмма физического уровня. Ограничения доменов. Ограничения ссылочной целостности. Переопределение триггеров. Индексирование отношений.
- •2.2.3 Определение представлений, хранимых процедур серверной компоненты. Er-диаграмма в режиме отображения представлений
- •2.3 Верификация спроектированной логической модели.
- •3. Реализация системы
- •3.1. T-sql-определения регламентированных запросов
- •3.2 T-sql-определения триггеров
- •3.3 T-sql-определения хранимых процедур
- •3.4 T-sql-определения курсоров
- •3.5 Распределение прав доступа пользователей
- •Заключение
- •Список использованных литературных источников
3.5 Распределение прав доступа пользователей
В текущей базе данных создано 5 пользователей и им были назначены права:
Для директора был создан пользователь director и назначены следующие права:
create login direktor /*создаем логин direktor*/
with password = '1111111' /*с паролем 1111111*/
create user direktor
for login direktor/*создаем пользователя direktor для логина director */
GRANT EXECUTE TO direktor; /*даем права на выполнение хранимых*/
GRANT VIEW DEFINITION TO direktor; /*даем права на выполнение представлений*/
/*даем все привелегии для работы с таблицами*/
GRANT all PRIVILEGES oN object::[Данные со счетчиков] TO direktor;
GRANT all PRIVILEGES oN object::Договор TO direktor;
GRANT all PRIVILEGES oN object::Должники TO direktor;
GRANT all PRIVILEGES oN object::[Дома на обслуживании] TO direktor;
GRANT all PRIVILEGES oN object::Зарплата TO direktor;
GRANT all PRIVILEGES oN object::Заявки TO direktor;
GRANT all PRIVILEGES oN object::Квартиросъемщики TO direktor;
GRANT all PRIVILEGES oN object::Квартиры TO direktor;
GRANT all PRIVILEGES oN object::Отделы TO direktor;
GRANT all PRIVILEGES oN object::Сотрудники TO direktor;
GRANT all PRIVILEGES oN object::Услуги TO direktor;
Для работника бухгалтерии была создана роль Buh_otdel и создан пользователь buhgalter, назначены следующие права:
create login buhgalter /*создаем логин buhgalter*/
with password = '1111111' /*с паролем 1111111*/
create user buhgalter
for login buhgalter /*создаем пользователя buhgalter для логина buhgalter */
create role Buh_otdel /*создаем роль Buh_otdel */
EXEC sp_addrolemember 'Buh_otdel', 'buhgalter' /*добавляем пользователя buhgalter к роли Buh_otdel */
GRANT all PRIVILEGES oN object::Зарплата TO Buh_otdel;
GRANT all PRIVILEGES oN object::Услуги TO Buh_otdel;
GRANT all PRIVILEGES oN object::Должники TO Buh_otdel;
/*даем все привелегии для работы с таблицами*/
GRANT all oN object::Сотрудники TO Buh_otdel;
GRANT EXECUTE on object::[Вся выданая зарплата +(sum)] TO Buh_otdel;
GRANT EXECUTE on object::[Вывести общую сумму задолжености по фамилии(sum)+] TO Buh_otdel;
GRANT EXECUTE on object::[Месяц выдачи зарплаты по фамилии(MONTH)] TO Buh_otdel;
GRANT EXECUTE on object::[Разбивает на группы по величине зарплаты (NTILE)] TO Buh_otdel;
GRANT EXECUTE on object::[Самая дешовая услуга(min)] TO Buh_otdel;
GRANT SELECT on object::[Информация о услуги со стоимостью выше средней] TO Buh_otdel;
GRANT SELECT on object::[Максимальная зарплата каждого сотрудника] TO Buh_otdel;
GRANT SELECT on object::[Разбиение зарплаты по группам] TO Buh_otdel;
GRANT SELECT on object::[Список должников c задолжностью >100000] TO Buh_otdel;
Для работника отдела кадров была создана роль Otdel_kadrov и создан пользователь kadr, назначены следующие права:
create login kadr /*создаем логин kadr */
with password = '1111111' /*с паролем 1111111*/
create user kadr
for login kadr/*создаем пользователя kadr для логина kadr */
create role Otdel_kadrov /*создаем роль Otdel_kadrov */
EXEC sp_addrolemember 'Otdel_kadrov', 'kadr' /*добавляем пользователя kadr к роли Otdel_kadrov */
GRANT all PRIVILEGES oN object::Отделы TO Otdel_kadrov;
GRANT all PRIVILEGES oN object::Сотрудники TO Otdel_kadrov;
/*даем все привелегии для работы с таблицами*/
GRANT EXECUTE on object::[Список сотрудников старше выбраной даты] TO Otdel_kadrov;
GRANT EXECUTE on object::[Поиск сотрудников по отделу] TO Otdel_kadrov;
GRANT EXECUTE on object::[Выдача кол-во рабочих по должносстям по отделу+(count)] TO Otdel_kadrov;
GRANT EXECUTE on object::[Год рождения сотрудника (YEAR)] TO Otdel_kadrov;
GRANT EXECUTE on object::[Имеется ли запись о дате рождения сотрудника (ISDATE)] TO Otdel_kadrov;
GRANT SELECT on object::[Вывести информацию о сотрудниках с высшим образованием] TO Otdel_kadrov;
GRANT SELECT on object::[Выдать информацию о сотруднике по фамилии] TO Otdel_kadrov;
GRANT SELECT on object::[Информация о сотруднике с самой маленькой зарплатой] TO Otdel_kadrov;
GRANT SELECT on object::[Подсчитать количество сотрудников с высшем образованием] TO Otdel_kadrov;
GRANT SELECT on object::[Поиск информации о сотруднике по первой букве фамилии] TO Otdel_kadrov;
/*даем права для выборки для работы с представлениями*/
Для работника диспетчерской была создана роль Dispetcherskaya и создан пользователь dispetcher, назначены следующие права:
create login dispatcher /*создаем логин dispatcher */
with password = '1111111' /*с паролем 1111111*/
create user dispatcher
for login dispetcher/*создаем пользователя dispatcher для логина dispatcher */
create role Dispetcherskaya /*создаем роль Dispetcherskaya */
EXEC sp_addrolemember 'Dispetcherskaya', dispatcher /*добавляем пользователя dispatcher к роли Dispetcherskaya */
GRANT all PRIVILEGES oN object::Заявки TO Dispetcherskaya
GRANT all PRIVILEGES oN object::Должники TO Dispetcherskaya
GRANT all PRIVILEGES oN object::Квартиросъемщики TO Dispetcherskaya
/*даем все привелегии для работы с таблицами*/
GRANT EXECUTE on object::[Вывести общую сумму задолжености по фамилии] TO Dispetcherskaya;
GRANT EXECUTE on object::[Выдача даты подачи заявки с определением дня недели] TO Dispetcherskaya;
GRANT EXECUTE on object::[Выдача квартиросъемщиков по первой букве] TO Dispetcherskaya;
GRANT EXECUTE on object::[Изменение жилищных условий] TO Dispetcherskaya;
GRANT EXECUTE on object::[Кол-во заявок за выбраный период] TO Dispetcherskaya;
GRANT EXECUTE on object::[Обновление статуса выбраной заявки] TO Dispetcherskaya;
GRANT EXECUTE on object::[Поиск квартиросъемщика по фамилии ] TO Dispetcherskaya;
GRANT EXECUTE on object::[Список должников со средней задолжностью выше заданой] TO Dispetcherskaya;
GRANT SELECT on object::[Вывести список выполненых заявок] TO Dispetcherskaya;
GRANT SELECT on object::[Список должников c задолжностью >100000] TO Dispetcherskaya;
/*даем права для выборки для работы с представлениями*/
Для работника производственно-технического отдела была создана роль Pto и создан пользователь pto , назначены следующие права:
create login pto/*создаем логин pto */
with password = '1111111' /*с паролем 1111111*/
create user pto
for login pto/*создаем пользователя pto для логина pto */
create role Pto/*создаем роль Pto */
EXEC sp_addrolemember 'Pto', pto /*добавляем пользователя pto к роли Pto */
GRANT all PRIVILEGES oN object::Договор TO Pto;
GRANT all PRIVILEGES oN object::Дома TO Pto;
GRANT all PRIVILEGES oN object::Квартиры TO Pto;
/*даем все привелегии для работы с таблицами*/
GRANT EXECUTE on object::[Вывод данных об договорах определнного дома (DATENAME)] TO Pto;
GRANT EXECUTE on object::[Выдать адреса домом по жилой площади] TO Pto;
GRANT EXECUTE on object::[Количество n-комнатных квартир] TO Pto;
GRANT EXECUTE on object::[Показать договора с определенной услугой] TO Pto;
GRANT EXECUTE on object::[Показать договора с определенной услугой] TO Pto;
/*даем права для выборки для работы с представлениями*/
GRANT SELECT on object::[Информация о домах c общей площадью >100] TO Pto;
GRANT SELECT on object::[Информация о домах c общей площадью >100] TO Pto;
4. Результаты тестирования информационной системы
В результате тестирования системы был создан журнал тестирования для хранимых процедур, триггеров, форм, запросов. Проведенное тестирование разработанной информационной системы показало, что она работает корректно и готова к использованию. С данной системой могут работать пять пользователя, которые различаются по выполняемым с базой данных действиям, то есть система является многопользовательской.
Для нормальной работы системы необходимо 256 Мбайт оперативной памяти, Windows NT/2000/XP и выше, Access2000 и выше.
После тестирования получены следующие результаты:
- информационная система поддерживает многопользовательский режим;
- тестирование запросов, форм, хранимых процедур и триггеров прошло успешно.
В данном курсовом проекте разработана база данных с многопользовательским клиентским приложением, которая хранится на SQL сервере. Для каждого пользователя составлены запросы и формы. Формы составлены на основе запросов, и используются для занесения информации в базу данных и ее последующего извлечения.