Главная страница
Навигация по странице:

  • Приморско-Ахтарский филиал НАНЧПОУ СКТ «Знание» КУРСОВАЯ РАБОТА по дисциплине: «Программирование в компьютерных системах». на тему

  • Успешной

  • 1.1. Причины популярности MySQL

  • Реагирование на требования сообщества.

  • Простой интерфейс для связывания с другим программным обеспечением

  • 1.2. Управление пользователями и привилегиями

  • Глава 2. Разработка авторизации

  • Список используемой литературы

  • Программирование в компьютерных системах. Курсовая работа по дисциплине Программирование в компьютерных системах. на тему Авторизация пользователей в бд


    Скачать 1.15 Mb.
    НазваниеКурсовая работа по дисциплине Программирование в компьютерных системах. на тему Авторизация пользователей в бд
    АнкорПрограммирование в компьютерных системах
    Дата10.04.2023
    Размер1.15 Mb.
    Формат файлаpdf
    Имя файлаKursovaya_rabota.pdf
    ТипКурсовая
    #1051391

    Негосударственного аккредитованного некоммерческого частного
    профессионального образовательного учреждения «Северо-Кавказский
    техникум «Знание»
    Приморско-Ахтарский филиал НАНЧПОУ СКТ «Знание»
    КУРСОВАЯ РАБОТА
    по дисциплине: «Программирование в компьютерных системах».
    на тему:
    «Авторизация пользователей в БД».
    Выполнила: студентка 3 курса группы 139-П
    Похвалит Мария Дмитриевна
    Преподаватель:
    Бормотов Виктор Валентинович
    Приморско-Ахтарск
    2022г.

    1
    Введение
    Компьютеры используются повсеместно: невозможно найти предприятие или учреждение, которые не применяли бы их для решения производственных или управленческих задач. Подобные высказывания не слишком заметны в средствах массовой информации, потому что они уже давно не являются новостью. Профессионалы, однако, понимают, что на самом деле важны не компьютеры, а информационные системы, которые на них работают, а в центре любой информационной системы находятся данные.
    Данная курсовая работа называется «Авторизация пользователей в базе данных». Благодаря авторизации пользователи могут осуществлять безопасный вход. Таким образом, без авторизации невозможно обойтись, ведь она применяется практически везде.
    Авторизация существует для доступа к данным и выполнению различных действий, в неё можно входить с помощью ролей пользователей базы данных и разрешений. Авторизация относится к разрешениям, назначенным пользователю, и определяет, что этому пользователю разрешено делать. Авторизация контролируется членством в роли базы данных вашей учетной записи пользователя и разрешениями на уровне объектов. В качестве наилучшей практики вы должны предоставлять пользователям наименьшие необходимые привилегии.
    Авторизация может быть:
    Успешной — пользователь подтвердил свои права (ввел правильный пароль). В таком случае он получает доступ к системе и может пользоваться ее функционалом.

    2
    Неуспешной — пользователь допустил ошибку при вводе данных или у него нет доступа к базе данных. В этом случае ему будет отказано в доступе.
    Не следует путать авторизацию с аутентификацией и идентификацией.
    Целью данной курсовой работы является создание авторизации в базе данных. Согласно цели поставим задачи:
     Изучение особенностей авторизации
     Разработка БД с авторизацией
     Реализация разработанной авторизации в конкретной СУБД (MySQL)
     Регистрация и авторизация пользователей на сайте
     Автоматизация работы с созданной БД

    3
    Глава 1. Среда MySQL.
    Архитектура MySQL очень отличается от архитектур иных серверов баз данных, что делает эту СУБД полезной для одних целей, но одновременно неудачным выбором для других. MySQL неидеальна, но достаточно гибка для того, чтобы хорошо работать в очень требовательных средах, например в веб-приложениях. В то же время MySQL позволяет применять встраиваемые приложения, хранилища данных, индексирование содержимого, программное обеспечение для доставки, высоконадежные системы с резервированием, обработку транзакций в реальном времени
    (OLTP) и многое другое. Для того чтобы максимально эффективно использовать MySQL, нужно разобраться в ее устройстве. Гибкость системы проявляется во многом. Например, вы можете настроить ее для работы на различном оборудовании и поддержки разных типов данных. Однако самой необычной и важной особенностью MySQL является такая архитектура подсистемы хранения, в которой обработка запросов и другие серверные задачи отделены от хранения и извлечения данных. Подобное разделение задач позволяет выбирать способ хранения данных, а также настраивать производительность, ключевые характеристики и др.
    Чтобы хорошо понимать работу сервера, нужно иметь представление о взаимодействии его компонентов. На рисунке 1.1. представлен логический вид архитектуры MySQL.

    4
    На верхнем уровне располагаются службы, не являющиеся уникальными компонентами MySQL. Они необходимы большинству сетевых клиент-серверных инструментов или серверов: для обслуживания соединений, аутентификации, обеспечения безопасности и т. п. Второй уровень намного интереснее. Здесь находится большая часть «мозгов»
    MySQL: код для обработки, анализа, оптимизации и кэширования запросов, а также все встроенные функции (например, функции даты времени, математические и функции шифрования). Здесь также расположены все инструменты, используемые в подсистемах хранения, например хранимые процедуры, триггеры и представления. Третий уровень содержит подсистемы хранения данных. Они отвечают за хранение всех данных в MySQL и их извлечение. Подобно различным файловым системам, доступным для
    GNU/Linux, каждая подсистема хранения данных имеет как сильные, так и слабые стороны. Сервер взаимодействует с ними через API подсистемы хранения данных. Этот интерфейс скрывает различия между такими подсистемами и делает их практически прозрачными на уровне запросов. API содержит пару десятков низкоуровневых функций, выполняющих операции типа «начать транзакцию» или «извлечь строку с таким первичным ключом».
    Подсистемы хранения не анализируют запросы SQL1 и не взаимодействуют друг с другом, они просто отвечают на исходящие от сервера запросы.

    5
    1.1. Причины популярности MySQL
    Основное внимание разработчиков MySQL всегда было направлено на эффективную реализацию самых распространенных функций. Поэтому
    MySQL обладает меньшими возможностями, чем ее главный свободно распространяемый конкурент — СУБД PostgreSQL или коммерческие системы управления базами данных. Однако благодаря навыкам, приобретенным после знакомства с этой книгой, вы сможете выполнять обслуживание базы данных на любой платформе. Многие системы управления базами данных, включая даже свободно распространяемые, построены на основе MySQL.

    Размер и скорость. MySQL способна работать при наличии довольно скромной аппаратной поддержки и малого количества ресурсов.
    Пользователи небольших организаций могут запускать MySQL на простых настольных системах. Что же касается скорости извлечения информации, то она уже долгое время является главной причиной выбора Web-администраторами именно этой СУБД. И хотя усилия, предпринятые командой MySQL AB в последние годы, благодаря разработкам для крупных сайтов были направлены на добавление функций, понижающих скорость извлечения данных, модульный дизайн позволяет не применять расширенные возможности MySQL и поддерживать гибкость и довольно высокую скорость.

    Легкость установки. MySQL можно установить, не вдаваясь в сложности, связанные с конфигурацией. Более того, поскольку в дистрибутивы Linux часто включается MySQL, установка может быть почти автоматической. Это не означает, что в MySQL легко выполнять административные задачи. Далее в книге описаны возможности, повышающие безопасность СУБД.

    Соблюдение стандартов. Различные стандарты SQL и причины, по которым невозможно найти между ними соответствие, будут описаны чуть ниже, в разделе «Язык структурированных запросов». Однако

    6 изучение MySQL подготовит вас к использованию других систем управления базами данных. Перенос кода из одной СУБД в другую никогда не бывает тривиальным, тем не менее MySQL является стандартной системой с обширными возможностями разработки.

    Реагирование на требования сообщества. Рассредоточив своих служащих по всему земному шару, MySQL AB теперь может своевременно реагировать на требования пользователей. Ведущие разработчики проводят семинары и конференции, на которых всегда готовы поддержать новые идеи. Кроме того, практически в каждом городе существуют локальные пользовательские группы MySQL, способные адекватно реагировать на все возникающие требования благодаря тому, что MySQL является свободно распространяемой
    СУБД. Любой достаточно опытный программист может просмотреть код программы для поиска и решения проблем. В MySQL используется метод двойного лицензирования. Если вы хотите на основе СУБД создать собственный продукт, то можете оплатить лицензию MySQL.
    Если же вы собираетесь использовать MySQL только для некоммерческих целей, вам не придется платить за лицензию. MySQL
    AB также предлагает техническую поддержку для множества различных компаний и консультантов.

    Простой интерфейс для связывания с другим программным
    обеспечением. MySQL можно использовать как часть более крупной системы, например разрабатывая программы, которые будут напрямую взаимодействовать с базой данных MySQL. Большинство основных языков программирования содержат библиотеки или функции для совместного использования с MySQL, включая C, PHP, Perl, Python,
    Ruby и языки Microsoft .NET. MySQL также поддерживает стандарт
    Open Database Connectivity (ODBC), что делает возможным использование этой СУБД даже в случае недоступности ее специфической функциональности.

    7
    1.2. Управление пользователями и привилегиями
    Изучение MySQL, разработка приложений и развертывание готового программного обеспечения представляют собой задачи с различными требованиями защиты. Во время изучения основ MySQL, особенно при работе на собственной машине, случайное удаление БД или таблиц, изменение данных и предоставление неограниченного доступа к серверу
    MySQL и его базам данных не является критической проблемой. Тем не менее, при разработке и поддержке реальных приложений очень важно защитить сервер и базы данных от случайных или намеренных действий, способных привести к удалению, изменению или обнародованию данных. С помощью средств управления пользователями и привилегиями MySQL можно правильно настроить и защитить доступ к серверу баз данных.
    Помимо настройки привилегий доступа к серверу MySQL необходимо отдельно продумать физическую защиту главного компьютера и резервных копий, а также правильно задать конфигурацию полномочий на уровне операционной системы. Сервер MySQL устанавливается с пользователем root, который может выполнять на сервере любые задачи, включая создание и удаление пользователей, баз данных, таблиц, индексов и данных.
    Большинству приложений для выполнения ежедневных операций не требуются привилегии суперпользователя. Поэтому имеет смысл задать пользователей лишь с теми привилегиями, которые им нужны для выполнения своей работы. Можно запретить пользователям создавать или изменять индексы, таблицы или базы данных. Даже можно ограничить пользователей простыми инструкциями SELECT в заданной БД или отдельных ее таблицах.
    При регистрации на сервере MySQL в качестве пользователя root для выполнения стандартных задач увеличивается вероятность того, что неавторизованный пользователь сможет извлечь достаточно информации для получения доступа к этой учетной записи. Даже можно сделать ошибку и случайно повредить базу данных.

    8
    Учитывая все сказанное выше, я рассмотрю следующие вопросы:

    привилегии MySQL;

    добавление, удаление и изменение пользователей и паролей MySQL;

    привилегии GRANT и REVOKE;

    конфигурация защиты MySQL по умолчанию;

    разработка политики безопасности для сервера MySQL;

    управление пользователями и привилегиями с помощью запросов SQL;

    ограничение работы пользователя с сервером.
    Как и большинство других серверов баз данных, MySQL имеет пользователей с привилегиями, определяющими их права на создание, модифицирование, удаление БД и выполнение запросов, а также на модифицирование привилегий и управление сервером. На практике это управление может быть крупноструктурным, когда пользователю разрешен или запрещен доступ к серверу, или мелкоструктурным, при котором пользователь имеет доступ лишь к определенным таблицам базы данных или даже к немногим столбцам таблицы. Некоторые серверы БД поддерживают только крупноструктурное управление, а другие, в том числе и MySQL, — как крупноструктурный, так и мелкоструктурный контроль доступа к данным. Сервер MySQL позволяет управлять получением доступа пользователей к серверу, базам данных, таблицам и столбцам на сервере, а также определять для них типы действий, которые они могут выполнять с этими структурами. Например, MySQL разрешает явным образом управлять правом пользователей запускать инструкции SELECT, UPDATE, INSERT и
    DELETE, использовать для структур выражения LOCK TABLES, ALTER, а также создавать или удалять индексы.
    Пользователи MySQL отличаются от пользователей операционной системы компьютера сервера. В системе Linux или Mac OS X суперпользователем является root, а в Windows — это Administrator. Помимо суперпользователя создается еще несколько учетных записей для работы с

    9 сервером. Для записи, чтения электронной почты, работы с Web и выполнения других операций вполне хватает обычной учетной записи.
    Обычная учетная запись не может получать доступ или модифицировать важные системные файлы, например, получать доступ к настройкам аппаратной поддержки или к журналам регистрации и файлам данных сервера MySQL. В однопользовательской системе применение менее привилегированной учетной записи для выполнения ежедневной работы снижает вероятность случайного удаления важных системных файлов или установки злонамеренных программ. На корпоративном сервере такая защита играет важную роль. Она не только дает возможность предотвратить случайные повреждения или злонамеренные атаки, но и обеспечивает конфиденциальность файлов и данных.
    Если системная учетная запись на сервере может получать доступ к конфигурации MySQL, то она в состоянии обойтись без монитора (или любого иного агента MySQL) и выполнить действия непосредственно на сервере или в базах данных. Например, системный пользователь root может манипулировать в системе любым экземпляром MySQL, а обычный пользователь — лишь экземплярами, запущенными под его учетной записью.
    Использование такой учетной записи дает возможность пропустить аутентификацию сервера MySQL и схему управления пользователями, запустив сервер с ключом skip-grant-tables.
    С помощью текстового редактора также можно просматривать данные, индексы и структуры баз данных или же просто копировать куда-нибудь базы данных и получать к ним доступ посредством другой инсталляции
    MySQL. Поэтому вам следует принять стандартные меры предосторожности для поддержки физической защиты сервера, постоянно обновлять операционную систему, добавить сетевой брандмауэр, использовать соответствующие полномочия для файлов и папок и требовать сложные пароли. Нужно помнить, что если сервер не защищен или взломан, то сервер

    10
    MySQL полностью лишается защиты независимо от конфигурации пользователей и привилегий MySQL. Точно так же следует позаботиться о защите доступа к резервным копиям баз данных.
    1.3. Утилиты SQL
    Существует множество бесплатных надстроек и утилит, которые можно использовать на самом сервере, некоторые из них довольно мощные.

    common_schema.
    Проект
    Шломи
    Ноача common_schema
    (http://code.openark.org/ forge/common_schema) - это мощный набор подпрограмм и представлений для серверных скриптов и администрирования. Для MySQL common_schema - как jQuery для javaScript.

    mysql-sr-lib. Джузеппе Максиа (Giuseppe Maxia) создал библиотеку хранимых процедур для MySQL, которую вы можете найти по адресу http://www.nongnu.org/ mysql-sr-lib/.

    Репозиторий UDF для MySQL. Роланд Бауман (Roland Bouman) организовал создание набора пользовательских функций для MySQL, который доступен по адресу http://www.mysqludf.org.

    MySQL Forge. В MySQL Forge (http://forge.mysql.com) вы найдете сотни программ, скриптов, фрагментов кода, утилит, подсказок и трюков, распространяемых сообществом.

    11
    Глава 2. Разработка авторизации
    Перед тем, как разработать базу данных я займусь веб-разработкой.
    Первым делом создаю код в файле «index.html». (Рисунки 2.1. и 2.2.)
    Рис. 2.1.
    Рис. 2.2.
    Затем я переименовываю файл на «index.php» и добавляю php код.
    (Рисунок 2.3.)
    Рис. 2.3.

    12
    Затем я добавила файл «style.css» в папке «css». (Рисунок 2.4.)
    Рис. 2.4.
    Потом добавила файлы «check.php», «auth.php» и «exit.php». (Рисунки
    2.5., 2.6. и 2.7.)
    Рис. 2.5. «check.php».

    13
    Рис. 2.6. «auth.php».
    Рис. 2.7. «exit.php».
    Теперь можно приступать к БД. Для этого я захожу на web
    PHPMYADMIN через DENVER и создаю базу данных с таблицей, в которой находится 4 поля. (Рис. 2.8.) Сама БД называется «register-bd».
    Рис. 2.8.
    Результат выполненной работы предоставлен на рисунках ниже.

    14
    Рис. 2.9.
    Рис. 2.10.
    Рис. 2.11.
    Рис. 2.12.

    15
    2.1. PHP
    Язык программирования РНР предназначен, главным образом, для построения веб-сайтов. Вместо того чтобы выполнять программу, написанную на РНР, в однопользовательском режиме на настольном компьютере, ее обычно запускают на веб-сервере, чтобы сделать доступной для многих людей, пользующихся веб-браузерами на своих компьютерах. В этом разделе поясняется, каким образом язык РНР вписывается во взаимодействие веб-браузера и веб-сервера. Сев за свой компьютер и открыв веб-страницу в окне браузера (например, Safari или Firefox), по существу, вызывают диалог между компьютерами через Интернет. Этот диалог, приводящий к появлению веб-страницы на экране компьютера, наглядно показан на рисунке 2.1.1. Отдельные этапы рассматриваемого здесь диалога без участия РНР пронумерованы на рисунке 2.1.1 и поясняются ниже.
    Рис. 2.1.1.: Связь клиента с сервером без участия PHP

    16
    2.2. HTML и CSS
    Создание веб-приложений — сложный процесс, включающий использование множества подвижных частей и интерактивных компонентов.
    Чтобы изучить, как это делается, нужно разобрать эти части на отдельные элементы и постараться понять, как все они взаимодействуют друг с другом.
    HTML, что значит Hyper Text Markup Language (язык гипертекстовой разметки), — это технология, которая позволяет задавать структуру расположения визуальных элементов (иногда ее называют пользовательским интерфейсом) веб-приложения.
    Файл CSS — это коллекция наборов правил, а набор правил — это просто ряд указаний относительно стилевого оформления, которые применяются к какому-либо виду элементов в DOM. Набор правил состоит из селектора — это может быть, например, название тега, открывающей фигурной скобки, списка правил и закрывающей фигурной скобки. Каждое правило состоит из определенного свойства,
    после которого следуют двоеточие, значение этого свойства(или список значений, разделенных пробелами), после чего ставится точка с запятой.
    2.2.1.

    17
    2.3. PHPMYADMIN
    phpMyAdmin - это бесплатный программный инструмент, написанный на
    PHP и предназначенный для управления СУБД MySQL через web-интерфейс. phpMyAdmin поддерживает широкий спектр операций над MySQL и
    MariaDB. Часто используемые операции (управление базами данных, таблицы, столбцы, отношения, индексы, пользователи) могут выполняться через пользовательский интерфейс, при этом все еще существует возможность напрямую выполнять любую инструкцию SQL.
    Рис. 2.3.1.

    18
    2.4. DENVER
    Денвер — набор дистрибутивов (локальный сервер WAMP) и программная оболочка, предназначенные для создания и отладки сайтов
    (веб-приложений, прочего динамического содержимого интернет-страниц) на локальном ПК (без необходимости подключения к сети Интернет) под управлением ОС Windows.
    2.4.1.

    19
    Заключение
    Результатом выполнения курсовой работы стала разработанная веб авторизация, которая бы не смогла бы существовать без базы данных. База данных включает таблицы и структуру, которых соответствует сведениям о пользователях.
    На примерах показано использование языка PHP в среде MySQL для автоматизации выполнения задач, организации связи между различными объектами приложения пользователя, реализованного в базе данных «register- bd». Подробно рассмотрена разработка процедур обработки событий. В них введены данные контрольного примера. Созданная БД для сведений о клиентах даёт представление, о возможностях конструирования, просмотра, ввода и корректировки данных в интерактивном режиме.
    Средствами PHP создан удобный пользовательский интерфейс.
    Пользователи с лёгкостью могут регистрироваться и входить на будущий сайт. Это позволяет сделать вывод, что задание выполнено полностью.
    Рассмотрены механизмы, предназначенные для разграничения доступа на уровне строк таблиц для зарегистрированных пользователей сервера базы данных.
    В связи с тем, что база учебная, а не профессиональная, некоторые данные были упрощены. Но разработанная база данных легко дополняется при необходимости разработки профессиональной базы данных.
    По итогу сделаю вывод, что для администрирования MySQL необходимы хорошие инструменты. Приступая к работе на новом сервере, самое первое, что мы делаем, - запускаем pt-summary и pt-mysql-summary.
    Когда мы работаем на сервере, то, как правило, наблюдаем за ним и связанными с ним серверами на другом терминале с помощью утилиты innotop. Инструменты мониторинга являются более сложной темой,

    20 поскольку они очень важны для организации. Если кто-то сторонник программ с открытым исходным кодом и хотите использовать такие системы мониторинга, можно попробовать либо комбинацию Nagios и Cacti с шаблонами для Cacti, созданными Бэроном, либо Zabblx, если не смущает его сложный интерфейс. Если нужно применить для мониторинга MySQL коммерческий инструмент, можно выбрать MySQL Enterprise Monitor, который неплохо работает у многих пользователей.

    21
    Содержание
    Введение ................................................................................................................... 1
    Глава 1. Среда MySQL ......................................................................................... 3 1.1. Причины популярности MySQL ........................................................... 5 1.2. Управление пользователями и привилегиями ..................................... 7 1.3. Утилиты SQL ........................................................................................ 10
    Глава 2. Разработка авторизации ...................................................................... 11 2.1. PHP ......................................................................................................... 15 2.2. HTML и CSS .......................................................................................... 16 2.3. PHPMYADMIN ..................................................................................... 17 2.4. DENVER ................................................................................................ 18
    Заключение ............................................................................................................ 19
    Список используемой литературы ...................................................................... 22

    22
    Список используемой литературы
    1. Шварц Б., Зайцев П., Ткаченко В. MySQL по максимуму. 3-е изд. -
    СПб.: Питер, 2018. - 864 с.
    2. Сейед Тахагхогхи, Хью Е. Вильямс. Руководство по MySQL / Пер. с англ. — М. : Издательство «Русская редакция» ; 2007. — 544 стр.
    3. Скляр, Дэвид. Изучаем РНР 7: руководство по созданию интерактивных веб-сайтов.: Пер. с англ. — СпБ.: ООО “Альфа-книга”,
    2017. — 464 с.
    4. Пьюривал С. Основы разработки веб-приложений. — СПб.: Питер,
    2015. — 272 с.
    5. Новиков Б. А. Основы технологий баз данных: учебное пособие / Б. А.
    Новиков, Е. А. Горшкова, Н. Г. Графеева; под ред. Е. В. Рогова. — 2-е изд. — М.: ДМК Пресс, 2020. — 582 с.


    написать администратору сайта