Автоматизированная система управления и аудита учетных записей в многопользовательских операционных системах семейства Windows NT
Заказать уникальную дипломную работу- 80 80 страниц
- 30 + 30 источников
- Добавлена 16.06.2009
- Содержание
- Часть работы
- Список литературы
- Вопросы/Ответы
РЕФЕРАТ
ВВЕДЕНИЕ
1 ОС WINDOWS NT
1.1 Требования к Windows NT
1.2 От Windows NT 3.1 до Windows 2000
1.3 Модели Windows NT
1.4 Регистрация пользователя в Windows NT
1.5 Выполнение приложений
1.6 Корпоративные сети
1.7 Выводы по первому разделу
2 ВЫБОР СРЕДЫ РАЗРАБОТКИ И БД
2.1 Преимущества Borland Delphi 7
2.2 БД MySQL
2.3 Установка сервера MySQL в среде Windows
2.4 Привилегии пользователей
2.5 Операторы SQL для создания базы данных и таблиц
2.6 Структура таблиц
2.7 Выводы по второму разделу
3 ИНТЕРФЕЙС ПОЛЬЗОВАТЕЛЯ
3.1 Понятие информационной системы
3.2 Требования к системе
3.2.1 Наименование программного изделия
3.2.2 Область применения
3.2.3 Требования к функциональным характеристикам
3.2.4 Организация входных и выходных данных
3.2.5 Требования к надежности
3.2.6 Условия эксплуатации
3.2.7 Требования к составу и параметрам технических средств
3.2.8 Требования к языкам программирования
3.2.9 План мероприятий внедрению программы и испытанию приложения
3.3 Разработка программной реализации проектируемой системы
3.4 Оценка эффективности автоматизированной системы
3.5 Руководство пользователя
3.6 Руководство программиста
3.7 Выводы по третьему разделу
ЗАКЛЮЧЕНИЕ
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
ПРИЛОЖЕНИЯ
Приложение 1. Текст программы в среде Delphi
Эта технология использована при написании программы в среде Borland Delphi 7.
Несомненным ее достоинством является возможность получения данных из различных источников. Эта возможность обеспечивается соответствующими драйверами. Именно технология ADO использована для доступа к БД в создаваемой системе.
Доступ к данным при использовании технологии ADO обеспечивают компоненты ADOConnection, ADODataSet, ADOTable и ADOQuery.
Компонент ADOConnection обеспечивает соединение с базой данных (источником данных). Компонент ADODataSet представляет собой данные, полученные от источника данных в результате выполнения SQL-запроса.
Компонент ADOTable также представляет собой данные, полученные из базы данных, но, в отличие от компонента ADODataSet, который может быть заполнен информацией из разных таблиц, этот компонент представляет собой данные, полученные из одной таблицы.
Компонент ADOQuery представляет собой данные, полученные из базы данных в результате выполнения SQL-команды.
Для связи между данными, в качестве которых может выступать компонент ADODataSet, ADOTable или ADOQuery, и компонентом, обеспечивающим отображение данных (например, DBGrid), используется компонент DataSource.
При работе с базой данных пользователя, как правило, интересует не все ее содержимое, а некоторая конкретная информация. В простейшем случае найти нужные сведения можно, просмотрев таблицу. Однако такой способ поиска неудобен и малоэффективен.
Выбрать нужную информацию из базы данных можно, направив серверу SQL-команду SELECT или, если информация уже загружена из базы данных, активизировав фильтр.
Текст программы в среде Borland Delphi 7 приведен в Приложении 1.
3.6 Оценка эффективности автоматизированной системы
Для того чтобы продемонстрировать эффективность АИС, необходимо предоставить следующую информацию:
список пользователей, которые участвовали в тестировании системы;
период, во время которого проводилось тестирование системы;
результаты тестирования;
пример практического тестирования;
значения коэффициентов эффективности системы.
Чем больше список пользователей, участвовавших в тестировании системы, тем надежнее результаты тестирования.
Как правило, за время опытной эксплуатации проводится тестирование. И чем больше период опытной эксплуатации, тем качественнее процесс тестирования и достовернее результаты.
К основным параметрам, описывающим результат тестирования при внедрении АИС, относятся фактические и теоретические показатели, улучшающие деятельность предприятия (например, показатели доходности системы, полученные от использования АИС для сферы производства и обслуживания и т.д.). Для АИС, связанных с товарным и денежным оборотом, существует понятие коэффициента эффективности системы, к которому можно отнести: отношение числа прибыльных сделок к их общему числу; величину прибыли, приходящейся на одну сделку (средняя прибыль одной сделки); величину убытка, приходящегося на одну сделку (средний убыток одной сделки); отношение среднего убытка к средней прибыли и т.д.
Что касается эффективности разрабатываемой системы, то она определяется уменьшением времени восстановления в случае утери пользователем параметров своей учетной записи. Таким образом, администратор сможет в кратчайшие сроки восстановить учетную запись пользователя, что не приведет к простою в работе пользователя. Кроме того, система предусматривает учет рабочего времени пользователя, что должно способствовать повышению качества работы персонала.
3.7 Оценка экономической эффективности автоматизированной системы
Оценка экономической эффективности автоматизированной системы является необходимой для принятия решения о необходимости ее создания, так как создание системы связано с необходимостью вложения денежных средств.
Чаще всего оценка эффективности вложений в информационные технологии происходит на уровне интуиции либо вообще не производится. Это связано с отсутствием понятных и надежных методик оценки экономической эффективности автоматизированных систем.
Что касается исследований, проводимых в области автоматизации бизнеса различными консалтинговыми компаниями, то экономическая эффективность от внедрения информационных систем может достигать 90% и даже 300% (чаще всего при этом имеются в виду увеличения продаж). В общем случае для выявления и определения величины источников экономического эффекта, необходимо провести детальный анализ деятельности компании. Обычно после внедрения системы увеличивается производительность труда и возрастает эффективность работы. Часто можно учесть сокращение затрат на персонал, уменьшение фонда оплаты труда упомянутого персонала, увеличение общего числа клиентов компании. Возможно снижение требований к квалификации персонала. Экономическая эффективность от этого определяется сокращением затрат на персонал за счет использования более дешевой рабочей силы. Улучшение качества обслуживания за счет внедрения автоматизированных систем приведет к снижению потерь клиентов, с которыми сотрудники забыли вовремя связаться. Снижение потерь из-за невозможности клиента вовремя связаться с компанией оценивается как стоимость не предоставленных услуг (товаров). Увеличение количества повторных обращений в фирму и, следовательно, повышение прибыли, извлекаемой из работы с каждым клиентом, может иметь место в случае предоставления качественных услуг. Для некоторых областей бизнеса данный эффект можно оценить на основе статистических данных, которые показывают, что увеличение процента удержания клиентов на 5% может увеличить доходы фирмы на 50-100%. Это некоторые источники экономического эффекта, которые присутствуют при автоматизации деятельности и которые с высокой степенью достоверности можно оценить численно. К сожалению, некоторые источники экономического эффекта нельзя представить в виде численных значений.
Затраты на автоматизацию обычно складываются из следующих основных частей: затраты на приобретение технических средств, затраты на приобретение готового ПО, затраты на проектирование, затраты на внедрение, затраты на эксплуатацию и затраты на сопровождение.
Затраты на внедрение системы состоят из затрат на обучение пользователей и затрат на опытную эксплуатацию. При расчете можно исходить из того, что эти затраты могут достигать 20-50% от стоимости самой системы. В случае проектируемой системы данного вида затрат не будет, так как предполагается использование системы администратором локальной сети учреждения, уже имеющим достаточную квалификацию.
Что касается эксплуатационных затрат, то они в общем случае из стоимости аренды рабочих площадей, затраты на обслуживающий персонал, стоимости обслуживания технических средств (ТС), стоимости эксплуатации ТС, однако в случае с проектируемой системой эти затраты могут быть сведены к минимуму. Действительно, если ТС уже были, значит, их кто-то обслуживал и они занимали какое-то пространство. В случае применения нового оборудования эти затраты можно рассчитать, исходя из характеристик ТС и ПО и рекомендаций разработчиков и производителей. В данном случае эксплуатационных затрат не предполагается и не требуется закупки новых аппаратных и программных средств.
На оценку стоимости сопровождения системы влияет множество факторов таких, как срок жизни системы, архитектура системы, условия поставки (некоторые системы поставляются, например, с исходным кодом) и т.д. По некоторым источникам затраты на сопровождение, могут составлять до 80% от стоимости системы. Однако в рассматриваемом случае информационной системы стоимость сопровождения будет определяться необходимостью доработки системы в случае изменения условий эксплуатации, а также необходимостью резервного копирования информации для исключения вероятности потери данных. Таким образом, из всех перечисленных видов затрат нужно учесть только затраты на сопровождение.
Экономической эффективность системы определяется как сумма полученных экономических эффектов за вычетом общей стоимости текущих затрат.
Для проектируемой системы определить экономическую эффективность в численном виде не представляется возможным, но данная АИС должна способствовать улучшению качества работы как администратора сети, так и всех пользователей, имеющих доступ к ресурсам БД.
3.8 Разработка руководства пользователя
Разработанное клиентское приложение называется audit.exe. Запуск приложения происходит нажатием на исполняемый модуль (клавишей «ENTER» или двойным кликом «мыши») или с помощью заранее созданного ярлыка к программе audit.exe.
На рисунке 3.5 показана схема функционирования пользовательского интерфейса.
Рис. 3.5 – Схема функционирования пользовательского интерфейса
В том случае, если в каталоге с программой имеется настроечный файл с именем audit.ini, пользователь видит на экране форму с заполненными параметрами доступа к БД. На рисунке 3.6 показан внешний вид формы при загрузке приложения.
Рис. 3.6 – Главная форма программы
Если пользователь неверно ввел параметры подключения, то он увидит форму, показанную на рисунке 3.7.
Рис. 3.7 – Сообщение об ошибке
Если пользователь ввел правильные параметры подключения, но БД с указанным именем не существует, то пользователь увидит сообщение, показанное на рисунке 3.8.
Рис. 3.8 – Вопрос о создании БД
Если пользователь отвечает утвердительно, то создается БД с указанным именем, а в ней таблица аудита пользователей. Если по каким-то причинам создать таблицу не удается, то пользователь увидит сообщение, показанное на рисунке 3.9.
Рис. 3.9 – Сообщение о невозможности создания БД или таблицы
При входе в программу в таблицу аудита вносится информация о дате и времени входа пользователя в ОС и дате и времени входа в систему. Если внести сведения не получается, то программа, выдает сообщение, показанное на рисунке 3.10.
Рис. 3.10 – Сообщение об ошибке при работе с таблицей аудита
В случае успешного подключения к БД и наличия у пользователя прав администратора пользователь увидит форму, показанную на рисунке 3.11.
Рис. 3.11 – Форма для работы с таблицей аудита
Для внесения новой учетной записи необходимо указать имя, пароль, выбрать имя таблицы из выпадающего списка или отметить «Все таблицы», а также в верхней части указать тип доступа (просмотр, вставка, обновление, удаление). В случае если администратор забывает указать имя пользователя, то он увидит сообщение, изображенное на рисунке 3.12.
Рис. 3.12 – Сообщение об ошибке для имени пользователя
Если администратор забывает указать пароль пользователя, то он увидит сообщение, изображенное на рисунке 3.13.
Рис. 3.13 – Сообщение об ошибке для пароля пользователя
Если администратор не отметил «Все таблицы» или не выбрал таблицу из выпадающего списка, то он увидит сообщение, показанное на рисунке 3.14.
Рис. 3.15 – Сообщение об ошибке в случае отсутствия таблиц, к которым разрешен доступ
Если администратор не отметил тип доступа (просмотр, вставка, обновление, удаление), то он увидит сообщение, показанное на рисунке 10.
Рис. 3.16 – Сообщение об ошибке при отсутствии указания типа доступа
Если администратор указал все необходимые параметры для добавления новой учетной записи, то он может нажать на кнопку «Добавить». При этом в таблице появится новый пользователь.
Администратор может также удалять учетные записи. Для этого необходимо воспользоваться кнопкой «Удалить». Если администратор не ввел имя пользователя и нажал кнопку «Удалить», то он увидит сообщение, показанное на рисунке 3.17.
Рис. 3.17 – Сообщение об ошибке при отсутствии указания имени пользователя для удаления
Если администратором введено имя пользователя и нажата кнопка «Удалить», то после успешного удаления учетной записи администратор получит сообщение, приведенное на рисунке 3.18.
Рис. 3.18 – Сообщение об успешном удалении учетной записи
Вкладка программы с названием «Просмотр таблиц» позволяет как администратору, так и обычному пользователю просматривать таблицы в БД, к которым он имеет доступ. После выбора имени таблицы из выпадающего списка пользователь видит на экране содержимое выбранной таблицы. На рисунке 3.19 показан просмотр пользователем таблицы audit_user.
Рис. 3.19 – Просмотр таблицы audit_user
На рисунке 3.20 показан внешний вид приложения при просмотре выбранной таблицы.
Рис. 3.20 – Просмотр таблицы publishing
Для выхода из приложения необходимо нажать на соответствующий символ в правом углу формы.
Для удобства запуска программного модуля можно создать ярлык на рабочем столе.
3.9 Выводы по третьему разделу
В третьей главе дипломной работы определяются требования к приложению, приводятся функциональная, логическая и физическая схемы системы, а также описывается состав проекта системы в среде разработки Borland Delphi 7, определяются необходимые условия для запуска приложения, а именно: установленный на ПК пользователя пакет mysql-connector-odbc-3.51.23-win32.msi и запущенный сервер баз данных MySQL. В данной главе даются указания по установке приложения и описание настроечного файла audit.ini, содержащее сведения о доступе к БД.
В руководстве пользователя приводятся экранные формы и описываются сообщения об ошибках, которые может получить пользователь, являющийся администратором, в случае неверного ввода информации.
Заключение
Целью дипломной работы является создание автоматизированной системы управления и аудита учетных записей в многопользовательских ОС семейства Windows NT.
Под АИС понимается взаимосвязанная совокупность информации, автоматизированных информационных технологий, а также обеспечивающих их реализацию программно-технических средств и специалистов, предназначенная для эффективного выполнения комплекса работ, необходимых информационным субъектам — пользователям АИС в их деятельности.
В качестве среды разработки выбрана Borland Delphi, в качестве СУБД – MySQL. В дипломной работе рассмотрены привилегии пользователей СУБД MySQL и команды, с помощью которых может быть выдана каждая из привилегий. В работе дается описание типов данных, которые используются при создании таблиц, и приводятся SQL-запросы, с помощью которых могут быть создана база данных и таблицы в ней.
Для работы программы необходимо иметь запущенный MySQL сервер на компьютере, где предполагается использовать программу, или в локальной сети учреждения. Для работоспособности программы достаточно установить бесплатное программное обеспечение для установки подключения к БД, которое может быть загружено с сайта компании MySQL, например, mysql-connector-odbc-3.51.23-win32.msi или более поздняя версия.
Разработанный исполняемый файл называется audit.exe. В случае наличия в каталоге с программой настроечного файла с названием audit.ini параметры доступа берутся из указанного файла.
Подводя итого, можно сказать, что цель дипломной работы выполнена, так как приложение позволяет управлять учетными записями пользователей и получать информацию о времени работы каждого из них.
Список использоВАННОЙ литературы
Арустамов, Э.А. Охрана труда: Справочник / Э. А. Арустамов. — М.: Издательско-торговая корпорация «Дашков и К», 2008.— 588 с. – ISBN 978–5-91131-551-1
Архангельский, А.Я. Программирование в Delphi 7 / А.Я. Архангельский – Бином-Пресс, 2003. – 1152 с. – ISBN 5-9518-0042-0.
Архангельский, А.Я. Delphi 2006. Справочное пособие. Язык Delphi, классы, функции Win32 и .NET / А.Я. Архангельский – Бином-Пресс, 2003. – 1152 с. – ISBN 5-9518-0138-9.
Бакнелл, Д. Фундаментальные алгоритмы и структуры данных в Delphi / Д. Бакнелл – СПб.: Питер, 2006. – 560 с. – ISBN 5-469-01495-9, 5-93772-087-3.
Бобровский, С.И. Delphi 7. Учебный курс / С.И. Бобровский – СПб.: Питер, 2008. – 736 с.: ил. – ISBN 978-5-8046-0086-1.
Гохберг, Г.С. Информационные технологии: Учебник для сред. проф. образования / Г.С. Гохберг, А.В. Зафиевский, А.А. Короткин – М.: Издательский центр «Академия», 2004. – 206 с. – ISBN 5-7695-1643-7.
Грабауров, В. А. Информационные технологии для менеджеров / В.А. Грабауров – М.: Финансы и статистика, 2001.– 368 с.: ил. – ISBN 5-279-02299-3
Грабер, М. Введение в SQL / Пер. с англ. В. Ястребов – Издательство «Лори», 1996. – 380 с. – ISBN: 5-85582-010-6.
Дарахвелидзе, П.Г., Марков, Е. П. Программирование в Delphi 7 / П.Г. Дарахвелидзе, Е. П. Марков. – СПб.: БХВ-Петербург, 2003. – 784 с. – ISBN 5-94157-116-Х.
Информатика: Учебник / Под общ. ред. А.Н. Данчула. — М.: Изд-во РАГС, 2004. – 528 с. – ISBN 5-7729-0147-8.
Информатика: учебник / Б.В. Соболь и др. — Изд. 3-е, дополн. и перераб. — Ростов н/Д: Феникс, 2007. — 446 с. — ISBN 978-5-222-12081-1
Кадлец, В. Delphi. Книга рецептов. Практические примеры, трюки и секреты / В. Кадлец – СПб.: Наука и техника, 2006. – 384 с. – ISBN 5-94387-269-8, 80-251-0017-0.
Карпов, Б. Delphi: специальный справочник / Б. Карпов – СПб.: Питер, 2002. – 688 с.: ил. – ISBN 5-272-00353-5.
Кастер, Х. Основы Windows NT и NTFS / Хелен Кастер — М.: Издательский отдел «Русская Редакция», 1996. — 440 с.: ил. — ISBN 5-7502-0023-Х.
Кузин, А. В. Базы данных: учеб. пособие для студ. высш. учеб. заведений / А.В. Кузин, С.В. Левонисова. — 2-е изд., стер. — М.: Издательский центр «Академия», 2008. — 320 с. ISВN 978-5-7695-4833-8.
Марков А.С., Лисовский К.Ю. Базы данных. Введение в теорию и методологию: Учебник / А.С. Марков, К.Ю. Лисовский — М.: Финансы и статистика, 2006. – 512 с: ил. — ISBN 5-279-02298-5.
Михеева, Е.В. Информационные технологии в профессиональной деятельности: учеб. пособие. – М.: ТК Велби, Изд-во Проспект, 2007. – 448 с. – ISBN 978-5-482-01569-8
Острейковский, В.А. Информатика: Учеб. пособие для студ. сред. спец. учеб. заведений / В.А. Острейковский – М.: Высшая школа, 2003. – 319 с.: ил. ISBN 5-06-004661-3.
Симонович, С.В. Информатика. Базовый курс. 2-е издание / Под ред. С.В.Симоновича. — СПб.: Питер, 2004. — 640 с.: ил. – ISBN 5-94723-752-0.
Степанов, А.Н. Информатика. Учебник для вузов. 4-е издание / А.Н.Степанов. — СПб.: Питер, 2005. — 684 с.: ил. – ISBN 5-94723-898-5.
Стивенс, Р. Delphi. Готовые алгоритмы / Р. Стивенс – М.: ДМК Пресс; СПб.: Питер, 2004. - 384 с.: ил. – ISBN 5-94074-202-5.
Томсон, Л. Разработка WEB-приложений на РНР и MySQL: Пер. с англ./ Лаура Томсон, Люк Веллинг. — 2-е изд., испр. — СПб: ООО «ДиаСофтЮП», 2003. — 672 с. – ISBN 5-93772-090-3.
Ульман, Л. MySQL / Ларри Ульман: Пер. с англ. Слинкина А. А. - М.: ДМК Пресс; СПб.: Питер, 2004. — 352 с.: ил. — ISBN 5-94074-229-7
Уоррен, Генри С. Алгоритмические трюки для программистов / Генри С. Уоррен – Вильямс, 2007. – 288 с.: ил. – ISBN 978-5-8459-0572-7, 0-2019-1465-4.
Фленов, М.Е. Библия Delphi. / М.Е. Фленов – СПб.: БХВ-Петербург, 2005. – 880 с. – ISBN 5-94157-456-8.
Фленов, М.Е. Программирование в Delphi глазами хакера. / М.Е. Фленов – СПб.: БХВ-Петербург, 2005. – 368 с.: ил. – ISBN 5-94157-351-0.
Хармон, Э. Разработка COM-приложений в среде Delphi / Э. Хармон – Вильямс, 2000. – 464 с.: ил. – ISBN 5-8459-0074-3, 1-57870-221-6.
Черняков, М.В.. Петрушин, А.С. Основы информационных технологий. Учебник для вузов. – М.: ИКЦ «Академкнига», 2007. – 406 с. – ISBN: 978-5-94628-273-4
Шумаков, П.В. Delphi 3 и разработка приложений баз данных / П.В. Шумаков. – М.: Нолидж, 1999. – 704 с.: ил. – ISBN 5-89251-022-0.
Шпак, Ю. А. Delphi 7 на примерах / Ю. А. Шпак. – М.: Юниор, 2003. – 344 с. – ISBN 966-7323-28-5.
Приложения
Приложение 1. Текст программы в среде Delphi
unit autent;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, StdCtrls, Buttons, IniFiles;
type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Label4: TLabel;
Edit1: TEdit;
ADOQuery1: TADOQuery;
function GetUserFromWindows: string;
function GetFileDate(FileName: string): string;
procedure FormCreate(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private file_win : String; //переменная, содержащая имя файла,
//по изменению которого будет определяться вход в ОС Windows
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses auditp;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var Ini : TIniFile;
//
begin
//при загрузке программы при наличии файла audit.ini берем из него значения параметров
Ini:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'audit.ini');
Edit1.Text:=Ini.ReadString('BD','ip','localhost');
Edit2.Text:=Ini.ReadString('BD','base','audit');
Edit3.Text:=Ini.ReadString('BD','user','root');
Edit4.Text:=Ini.ReadString('BD','password','');
file_win:=Ini.ReadString('BD','file_win','0.log');
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var ip,base,password,user:String;
Windir: string;
WindirP: PChar;
Res: Cardinal;
TT: TStringList;
i:Integer;
begin
ip:=trim(Edit1.Text);
base:=trim(Edit2.Text);
user:=trim(Edit3.Text);
password:=trim(Edit4.Text);
ADOConnection1.ConnectionString:='Extended Properties="DATABASE='+base+
';Driver=MySql ODBC 3.51 driver;STMT=set names cp1251; OPTION=0;PWD='+password+
';PORT=0;SERVER='+ip+';UID='+user+'"';
try
ADOConnection1.Connected:=True;
except
//если не подключились к выбранной базе,
//то подключение к базе mysql с целью создания БД с указанным именем
//если у пользователя недостаточно прав, то БД не будет создана
ADOConnection1.ConnectionString:='Extended Properties="DATABASE=mysql'+
';Driver=MySql ODBC 3.51 driver;STMT=set names cp1251; OPTION=0;PWD='+password+
';PORT=0;SERVER='+ip+';UID='+user+'"';
try
ADOConnection1.Connected:=True;
//если подключились к базе mysql, то можно
//попробовать создать БД
if Application.MessageBox(PChar('Нет БД с указанным именем. Создать БД '+base+'?'),'Вопрос',mb_YESNO+mb_ICONQUESTION)=IDYES then
begin
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('create database if not exists `'+base+'`;');
try
ADOQuery1.ExecSQL;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('USE `'+base+'`;');
ADOQuery1.ExecSQL;
//БД создана, надо создать в ней таблицу, отслеживающую вход-выходы пользователей
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('DROP TABLE IF EXISTS `audit_user`;');
ADOQuery1.ExecSQL;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('CREATE TABLE `audit_user` (');
ADOQuery1.SQL.Add('`user_name` char(25) NOT NULL,');
ADOQuery1.SQL.Add('`date_in` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,');
ADOQuery1.SQL.Add('`date_os` datetime NOT NULL,');
ADOQuery1.SQL.Add('`date_out` datetime DEFAULT NULL,');
ADOQuery1.SQL.Add('`user_win` char(25) CHARACTER SET cp1251 COLLATE cp1251_bin DEFAULT NULL, ');
ADOQuery1.SQL.Add(' PRIMARY KEY (`user_name`,`date_in`)');
ADOQuery1.SQL.Add(') ENGINE=InnoDB DEFAULT CHARSET=cp1251;');
ADOQuery1.ExecSQL;
except
//если БД не удалось создать, то сообщение об этом
//какой-то параметр или несколько указаны неверно
Application.MessageBox('БД с указанным именем не создана! Возможно, недостаточно прав!','Сообщение',mb_Ok+mb_ICONINFORMATION);
Edit1.SetFocus;
exit;
end;
end
else
begin
Edit1.SetFocus;
exit;
end;
except
//если не подключились к mysql,то
//какой-то параметр или несколько указаны неверно
Application.MessageBox('Нет доступа к данным! Проверьте введенные значения!','Сообщение',mb_Ok+mb_ICONINFORMATION);
Edit1.SetFocus;
exit;
end;
end;
//определим каталог Windows
WinDirP := StrAlloc(MAX_PATH);
//это директория, где Windows
Res := GetWindowsDirectory(WinDirP, MAX_PATH);
if Res > 0 then
WinDir := StrPas(WinDirP);
//подключились к БД, поэтому добавим запись в таблицу
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(' insert into `audit_user` (');
ADOQuery1.SQL.Add('`user_name`,`date_os`,`user_win`) ');
ADOQuery1.SQL.Add(' values('+QuotedStr(trim(Edit3.Text))+',');
//определим дату-время входа пользователя в Windows
ADOQuery1.SQL.Add(QuotedStr(FormatDateTime('yyyy-mm-dd HH:mm:ss',StrToDateTime(GetFileDate(WinDir+'\'+file_win))))+',');
//через функцию имя пользователя Windows
ADOQuery1.SQL.Add( QuotedStr(trim(GetUserFromWindows))+')');
try
ADOQuery1.ExecSQL;
except
//если запись не введена в таблицу, то проблемы с БД и/или с таблицей и выход из программы
Application.MessageBox('Ошибка при работе с БД или таблицей аудита!','Сообщение',mb_Ok+mb_ICONINFORMATION);
Application.Terminate;
end;
//создадим массив с названиями таблиц
TT:=TStringList.Create;
ADOConnection1.GetTableNames(TT);
Form2.ComboBox1.Items.Clear;
for i:=0 to TT.Count-1 do
begin
Form2.ComboBox1.Items.Add(TT[i]);
Form2.ComboBox2.Items.Add(TT[i]);
end;
//
//Form1.ADOQuery1.SQL.Add('WHERE User='+QuotedStr(trim(Edit1.Text)));
Form2.Refresh_user;
Form1.Visible:=False;
Form2.PageControl1.Align:=AlClient;
Form2.Show;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
Application.Terminate;
end;
function TForm1.GetFileDate(FileName: string): string;
var
//дата последнего доступа к файлу
FileHandle: THandle;
LocalFileTime: TFileTime;
DosFileTime: DWORD;
LastAccessedTime: TDateTime;
FindData: TWin32FindData;
begin
FileHandle := FindFirstFile(PChar(FileName), FindData);
if FileHandle <> INVALID_HANDLE_VALUE then
begin
Windows.FindClose(Handle);
if (FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = 0 then
begin
FileTimeToLocalFileTime(FindData.ftLastWriteTime, LocalFileTime);
FileTimeToDosDateTime(LocalFileTime,
LongRec(DosFileTime).Hi, LongRec(DosFileTime).Lo);
LastAccessedTime := FileDateToDateTime(DosFileTime);
end;
end;
Result := DateTimeToStr(LastAccessedTime);
end;
function TForm1.GetUserFromWindows: string;
//определим имя пользователя Windows
var
UserName : string;
UserNameLen : Dword;
begin
UserNameLen := 255;
SetLength(userName, UserNameLen);
if GetUserName(PChar(UserName), UserNameLen) then
Result := Copy(UserName,1,UserNameLen - 1)
else
Result := 'Unknown';
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
//выходе из программы заполнить поле - дата выхода
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('USE `'+Edit2.Text+'`;');
ADOQuery1.ExecSQL;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('update ignore `audit_user` ');
ADOQuery1.SQL.Add('set `date_out`='+QuotedStr(FormatDateTime('yyyy-mm-dd HH:mm:ss',now)));
ADOQuery1.SQL.Add('where date_out is null ');
ADOQuery1.SQL.Add('and user_name='+QuotedStr(trim(Edit3.Text)));
try
ADOQuery1.ExecSQL;
except
end;
end;
end.
unit auditp;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, ExtCtrls, ComCtrls, StdCtrls, CheckLst, Grids,
DBGrids, Buttons;
type
TForm2 = class(TForm)
ADOQuery1: TADOQuery;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
Panel1: TPanel;
CheckListBox1: TCheckListBox;
DataSource1: TDataSource;
DBGrid2: TDBGrid;
Panel2: TPanel;
ComboBox2: TComboBox;
BitBtn1: TBitBtn;
Edit1: TEdit;
Label1: TLabel;
DBGrid1: TDBGrid;
BitBtn2: TBitBtn;
Label2: TLabel;
Label3: TLabel;
ComboBox1: TComboBox;
CheckBox1: TCheckBox;
Label4: TLabel;
Edit2: TEdit;
ADOQuery2: TADOQuery;
DataSource2: TDataSource;
procedure Refresh_user;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure BitBtn1Click(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure ComboBox2Change(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses autent;
{$R *.dfm}
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Form1.Close;
end;
procedure TForm2.BitBtn1Click(Sender: TObject);
var i,j : Integer;
ss : String;
begin
//добавление нового пользователя и выдача привилегий
if (trim(Edit1.Text)='') then
begin
Application.MessageBox('Не указано имя пользователя!','Сообщение',mb_Ok+mb_ICONINFORMATION);
exit;
end;
if (trim(Edit2.Text)='') then
begin
Application.MessageBox('Не указан пароль!','Сообщение',mb_Ok+mb_ICONINFORMATION);
exit;
end;
if (CheckBox1.Checked=False) and (ComboBox1.ItemIndex=-1) then
begin
Application.MessageBox('Не указана таблица или все таблицы!','Сообщение',mb_Ok+mb_ICONINFORMATION);
exit;
end;
j:=0;
for i:=0 to CheckListBox1.Items.Count-1 do
if (CheckListBox1.Checked[i]) then j:=j+1;
if (j=0) then
begin
Application.MessageBox('Не указана ни одна из привилегий!','Сообщение',mb_Ok+mb_ICONINFORMATION);
exit;
end;
Form1.ADOQuery1.SQL.Clear;
Form1.ADOQuery1.SQL.Add('use '+Form1.Edit2.Text);
Form1.ADOQuery1.ExecSQL;
for i:=0 to CheckListBox1.Items.Count-1 do
begin
if (CheckListBox1.Checked[i]) then
begin
ss:=trim(copy(CheckListBox1.Items[i],pos(' ',CheckListBox1.Items[i])+1,length(CheckListBox1.Items[i])));
if (CheckBox1.Checked) then
ss:=ss+' ON *.* '
else
ss:=ss+' ON '+ComboBox1.Items[ComboBox1.ItemIndex];
Form1.ADOQuery1.SQL.Clear;
Form1.ADOQuery1.SQL.Add('GRANT '+ss+' TO '+trim(Edit1.Text)+'@'+Form1.Edit1.Text);
Form1.ADOQuery1.SQL.Add(' IDENTIFIED BY '+QuotedStr(trim(Edit2.Text)));
try
Form1.ADOQuery1.ExecSQL;
except
Application.MessageBox('Ошибка! Пользователь не создан! Возможно, недостаточно прав или дублирование!','Сообщение',mb_Ok+mb_ICONINFORMATION);
exit;
end;
end; //if
end;//for
//для таблицы audit надо дать все права, кроме удаления
Form1.ADOQuery1.SQL.Clear;
Form1.ADOQuery1.SQL.Add('GRANT ALL PRIVILEGES ON '+trim(Form1.Edit2.Text)+'.audit_user TO '+trim(Edit1.Text)+'@'+Form1.Edit1.Text);
Form1.ADOQuery1.SQL.Add(' IDENTIFIED BY '+QuotedStr(trim(Edit2.Text)));
Form1.ADOQuery1.ExecSQL;
Edit1.Text:='';
Edit2.Text:='';
ComboBox1.ItemIndex:=-1;
CheckBox1.Checked:=False;
Refresh_user;
end;
procedure TForm2.CheckBox1Click(Sender: TObject);
begin
ComboBox1.ItemIndex:=-1;
end;
procedure TForm2.Refresh_user;
begin
//обновление списка пользователей
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('USE `mysql`;');
ADOQuery1.ExecSQL;
//проверим на привилегии
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select Create_priv ');
ADOQuery1.SQL.Add('from user ');
ADOQuery1.SQL.Add('WHERE User='+QuotedStr(trim(Form1.Edit3.Text)));
try
ADOQuery1.Open;
except
ADOQuery1.Close;
TabSheet1.TabVisible:=False;
end;
if (ADOQuery1.FieldByname('Create_priv').AsBoolean=False) then
begin
TabSheet1.TabVisible:=False;
ADOQuery1.Close;
exit;
end;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select User,Password,Select_priv,Insert_priv,Update_priv,Delete_priv ');
ADOQuery1.SQL.Add('from user order by User ');
try
ADOQuery1.Open;
except
//если произошла ошибка при обращении к таблице, то нет доступа к списку пользователей
TabSheet1.TabVisible:=False;
end;
end;
procedure TForm2.ComboBox2Change(Sender: TObject);
begin
//при изменении названия таблицы высветить содержимое
DBGrid2.Visible:=True;
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('USE `'+Form1.Edit2.Text+'`;');
ADOQuery2.ExecSQL;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('select * ');
ADOQuery2.SQL.Add('from '+ComboBox2.Items[ComboBox2.ItemIndex]);
ADOQuery2.Open;
end;
procedure TForm2.BitBtn2Click(Sender: TObject);
begin
//удалить пользователя
if (trim(Edit1.Text)='') then
begin
Application.MessageBox('Не введено имя пользователя для удаления!','Сообщение',mb_Ok+mb_ICONINFORMATION);
exit;
end;
Form1.ADOQuery1.Close;
Form1.ADOQuery1.SQL.Clear;
{
Если привилегии предоставляются сочетанию пользователь/удаленный компьютер,
которое отсутствует в таблице mysql.user, то в последнюю добавляется запись,
которая остается в таблице до тех пор, пока не будет удалена при помощи команды DELETE.
Иначе говоря, команда GRANT может создавать записи user в таблице,
но команда REVOKE не может их удалить. Это необходимо делать при помощи команды DELETE.
}
Form1.ADOQuery1.SQL.Add('DELETE FROM user ');
Form1.ADOQuery1.SQL.Add('WHERE User='+QuotedStr(trim(Edit1.Text)));
try
Form1.ADOQuery1.ExecSQL;
Application.MessageBox('Пользователь удален!','Сообщение',mb_Ok+mb_ICONINFORMATION);
Edit1.Text:='';
Edit2.Text:='';
ComboBox1.ItemIndex:=-1;
CheckBox1.Checked:=False;
Refresh_user;
except
Screen.Cursor:=crDefault;
Application.MessageBox('Ошибка при удалении пользователя! Возможно, недостаточно прав!','Сообщение',mb_Ok+mb_ICONINFORMATION);
end;
end;
end.
4
90
Если пользователь не является администратором, то ему доступна только страница просмотра таблиц
Удаление выбранного пользователя из таблицы user БД MySQL
Обновление записи в таблице audit_user (поле даты и времени выхода из БД
Определение даты и времени указанного файла для выяснения даты и времени входа в ОС
Добавление записи в таблицу audit_user с указанием даты и времени входа
Добавление нового пользователя с правами в таблицу user БД MySQL
Формирование списка таблиц в указанной БД
Проверка доступа к серверу MySQL
Создание БД с указанным именем и таблицы audit_user
Корректировка записи в таблице аудита (заполнение даты и времени выхода из БД )
Пользователь не является администратором
Пользователь является администратором и может раздавать привилегии другим пользователям
Просмотр всех таблиц в БД
Проверка привилегий пользователя (администратор или нет)
Добавление записи в таблицу аудита с датой и временем входа в БД и ОС
БД не создана. Сообщение об ошибке и выход из программы
БД и таблица аудита пользователей созданы успешно
Попытка создать БД с указанным именем на указанном ПК
Авторизация пользователя
Пользователь ввел ошибочные данные или БД не существует
Пользователь получил доступ к таблицам БД
Запуск приложения по аудиту пользователей
Ввод параметров доступа к БД (хост, имя БД, имя пользователя, пароль)
В случае наличия настроечного ini-файла чтение параметров доступа к БД из файла
Корректировка записи в таблице аудита (заполнение даты и времени выхода из БД
Добавление записи в таблицу аудита с датой и временем входа в БД и ОС
Просмотр любой из выбранных таблиц
Удаление выбранного пользователя
Создание новых пользователей с привилегиями на чтение
Проверка прав доступа пользователя к БД
Проверка прав на создание таблиц
Проверка прав доступа на создание БД в случае отсутствия БД
Если пользователь является администратором, то ему доступна страница по управлению учетными записями пользователей и страница просмотра таблиц
Подчиненная двухстраничная форма приложения
Главная форма приложения для ввода параметров доступа к БД. Учет даты и времени входа пользователя в БД и ОС
Запись даты и времени входа в БД в таблицу аудита
Запись даты и времени выхода из БД в таблицу аудита
да
нет
нет
нет
да
да
нет
да
Конец
Начало
Чтение параметров доступа к БД
Файл существует?
Проверка наличия настроечного файла ini
Просмотр содержимого таблиц в БД
Страница с привилегиями пользователей доступна
Создание новой БД с указанны именем
Есть права на создание таблиц?
Новая БД создана?
Вход в БД успешный?
Авторизация в БД
1.Арустамов, Э.А. Охрана труда: Справочник / Э. А. Арустамов. — М.: Издательско-торговая корпорация «Дашков и К», 2008.— 588 с. – ISBN 978–5-91131-551-1
2.Архангельский, А.Я. Программирование в Delphi 7 / А.Я. Архангельский – Бином-Пресс, 2003. – 1152 с. – ISBN 5-9518-0042-0.
3.Архангельский, А.Я. Delphi 2006. Справочное пособие. Язык Delphi, классы, функции Win32 и .NET / А.Я. Архангельский – Бином-Пресс, 2003. – 1152 с. – ISBN 5-9518-0138-9.
4.Бакнелл, Д. Фундаментальные алгоритмы и структуры данных в Delphi / Д. Бакнелл – СПб.: Питер, 2006. – 560 с. – ISBN 5-469-01495-9, 5-93772-087-3.
5.Бобровский, С.И. Delphi 7. Учебный курс / С.И. Бобровский – СПб.: Питер, 2008. – 736 с.: ил. – ISBN 978-5-8046-0086-1.
6.Гохберг, Г.С. Информационные технологии: Учебник для сред. проф. образования / Г.С. Гохберг, А.В. Зафиевский, А.А. Короткин – М.: Издательский центр «Академия», 2004. – 206 с. – ISBN 5-7695-1643-7.
7.Грабауров, В. А. Информационные технологии для менеджеров / В.А. Грабауров – М.: Финансы и статистика, 2001.– 368 с.: ил. – ISBN 5-279-02299-3
8.Грабер, М. Введение в SQL / Пер. с англ. В. Ястребов – Издательство «Лори», 1996. – 380 с. – ISBN: 5-85582-010-6.
9.Дарахвелидзе, П.Г., Марков, Е. П. Программирование в Delphi 7 / П.Г. Дарахвелидзе, Е. П. Марков. – СПб.: БХВ-Петербург, 2003. – 784 с. – ISBN 5-94157-116-Х.
10.Информатика: Учебник / Под общ. ред. А.Н. Данчула. — М.: Изд-во РАГС, 2004. – 528 с. – ISBN 5-7729-0147-8.
11.Информатика: учебник / Б.В. Соболь и др. — Изд. 3-е, дополн. и перераб. — Ростов н/Д: Феникс, 2007. — 446 с. — ISBN 978-5-222-12081-1
12.Кадлец, В. Delphi. Книга рецептов. Практические примеры, трюки и секреты / В. Кадлец – СПб.: Наука и техника, 2006. – 384 с. – ISBN 5-94387-269-8, 80-251-0017-0.
13.Карпов, Б. Delphi: специальный справочник / Б. Карпов – СПб.: Питер, 2002. – 688 с.: ил. – ISBN 5-272-00353-5.
14.Кастер, Х. Основы Windows NT и NTFS / Хелен Кастер — М.: Издательский отдел «Русская Ре¬дакция», 1996. — 440 с.: ил. — ISBN 5-7502-0023-Х.
15.Кузин, А. В. Базы данных: учеб. пособие для студ. высш. учеб. заведений / А.В. Кузин, С.В. Левонисова. — 2-е изд., стер. — М.: Изда¬тельский центр «Академия», 2008. — 320 с. ISВN 978-5-7695-4833-8.
16.Марков А.С., Лисовский К.Ю. Базы данных. Введение в теорию и методологию: Учебник / А.С. Марков, К.Ю. Лисовский — М.: Финансы и статистика, 2006. – 512 с: ил. — ISBN 5-279-02298-5.
17.Михеева, Е.В. Информационные технологии в профессиональной деятельности: учеб. пособие. – М.: ТК Велби, Изд-во Проспект, 2007. – 448 с. – ISBN 978-5-482-01569-8
18.Острейковский, В.А. Информатика: Учеб. пособие для студ. сред. спец. учеб. заведений / В.А. Острейковский – М.: Высшая школа, 2003. – 319 с.: ил. ISBN 5-06-004661-3.
19.Симонович, С.В. Информатика. Базовый курс. 2-е издание / Под ред. С.В.Симоновича. — СПб.: Питер, 2004. — 640 с.: ил. – ISBN 5-94723-752-0.
20.Степанов, А.Н. Информатика. Учебник для вузов. 4-е издание / А.Н.Степанов. — СПб.: Питер, 2005. — 684 с.: ил. – ISBN 5-94723-898-5.
21.Стивенс, Р. Delphi. Готовые алгоритмы / Р. Стивенс – М.: ДМК Пресс; СПб.: Питер, 2004. - 384 с.: ил. – ISBN 5-94074-202-5.
22.Томсон, Л. Разработка WEB-приложений на РНР и MySQL: Пер. с англ./ Лаура Томсон, Люк Веллинг. — 2-е изд., испр. — СПб: ООО «ДиаСофтЮП», 2003. — 672 с. – ISBN 5-93772-090-3.
23.Ульман, Л. MySQL / Ларри Ульман: Пер. с англ. Слинкина А. А. - М.: ДМК Пресс; СПб.: Питер, 2004. — 352 с.: ил. — ISBN 5-94074-229-7
24.Уоррен, Генри С. Алгоритмические трюки для программистов / Генри С. Уоррен – Вильямс, 2007. – 288 с.: ил. – ISBN 978-5-8459-0572-7, 0-2019-1465-4.
25.Фленов, М.Е. Библия Delphi. / М.Е. Фленов – СПб.: БХВ-Петербург, 2005. – 880 с. – ISBN 5-94157-456-8.
26.Фленов, М.Е. Программирование в Delphi глазами хакера. / М.Е. Фленов – СПб.: БХВ-Петербург, 2005. – 368 с.: ил. – ISBN 5-94157-351-0.
27.Хармон, Э. Разработка COM-приложений в среде Delphi / Э. Хармон – Вильямс, 2000. – 464 с.: ил. – ISBN 5-8459-0074-3, 1-57870-221-6.
28.Черняков, М.В.. Петрушин, А.С. Основы информационных технологий. Учебник для вузов. – М.: ИКЦ «Академкнига», 2007. – 406 с. – ISBN: 978-5-94628-273-4
29.Шумаков, П.В. Delphi 3 и разработка приложений баз данных / П.В. Шумаков. – М.: Нолидж, 1999. – 704 с.: ил. – ISBN 5-89251-022-0.
30.Шпак, Ю. А. Delphi 7 на примерах / Ю. А. Шпак. – М.: Юниор, 2003. – 344 с. – ISBN 966-7323-28-5.
Вопрос-ответ:
Какие требования предъявляются к операционной системе Windows NT?
Операционная система Windows NT должна иметь возможность автоматизированного управления и аудита учетных записей в многопользовательских системах, а также обеспечивать безопасность и защиту данных.
Какие модели Windows NT существуют?
Существуют модели Windows NT, начиная от Windows NT 3.1 и заканчивая Windows 2000. Каждая из этих моделей имеет свои особенности и улучшения по сравнению с предыдущей версией.
Как выполняется регистрация пользователя в системе Windows NT?
Регистрация пользователя в Windows NT включает в себя создание учетной записи пользователя, назначение прав доступа и пароля, а также настройку параметров пользователя.
Какие преимущества имеет среда разработки Borland Delphi 7?
Среда разработки Borland Delphi 7 обладает множеством преимуществ, таких как удобный интерфейс, богатый набор инструментов для разработки, а также возможность создания масштабируемых и высокопроизводительных приложений.
Как установить сервер MySQL в операционной системе Windows?
Для установки сервера MySQL в операционной системе Windows необходимо скачать установочный пакет, запустить его и следовать инструкциям мастера установки.
Какие требования предъявляются к операционной системе Windows NT?
Операционная система Windows NT должна обладать возможностью автоматизированного управления и аудита учетных записей в многопользовательской среде.
Какие модели Windows NT существуют?
Существует несколько моделей операционной системы Windows NT, включая модели Windows NT 3.1, Windows NT 4.0, Windows 2000 и другие.
Как происходит регистрация пользователя в Windows NT?
Регистрация пользователя в Windows NT осуществляется с помощью специального процесса, где пользователь указывает свои учетные данные, такие как имя и пароль.
Какие преимущества предоставляет среда разработки Borland Delphi 7?
Borland Delphi 7 предоставляет широкие возможности для разработки приложений, включая удобный интерфейс, мощные инструменты и поддержку различных платформ.
Как установить сервер MySQL на операционной системе Windows?
Для установки сервера MySQL на операционной системе Windows нужно выполнить определенные шаги, включая скачивание установочного файла, запуск установщика и следование инструкциям.
Какие требования предъявляются к операционной системе Windows NT?
Операционная система Windows NT должна обладать определенной производительностью, поддерживать многопользовательский режим работы, иметь механизмы безопасности и обладать возможностью централизованного управления пользователями и их учетными записями.