- •Глава 1. Анализ предметной области асу «Автосалон» 5
- •Глава 2. Проектирование базы данных для объекта автоматизации автосалон «Lexus» 16
- •Глава 3. Программная реализация бд автосалона «Lexus» 27
- •Введение
- •Глава 1. Анализ предметной области асу «Автосалон»
- •1.1. Анализ объекта автоматизации ооо «Lexus»
- •Информационная модель
- •1.2. Обзор информационных технологий, подходящих для разработки бд
- •1.3. Обзор продуктов аналогов
- •Функциональные возможности:
- •1.4. Требования к разрабатываемой базе данных
- •Глава 2. Проектирование базы данных для объекта автоматизации автосалон «Lexus»
- •2.1. Разработка инфологической модели бд
- •2.2. Обоснование выбора модели данных
- •Сетевая модель
- •Иерархическая модель
- •Объектно-ориентированная модель
- •Реляционная модель
- •2.3. Даталогическое проектирование бд
- •2.4 Нормализация
- •Глава 3. Программная реализация бд автосалона «Lexus»
- •3.1 Анализ и выбор субд
- •3.2. Физическое проектирование бд
- •3.3 Разработка представлений
- •3.4 Разработка отчетов
- •3.5 Реализация ограничений, автоматизация обработки данных в бД
- •3.7. Безопасность и контроль
- •Заключение
- •Список литературы
3.7. Безопасность и контроль
Безопасность в PostgreSQL можно разделить на 4 уровня[10]:
- Безопасность на сетевом уровне
- Безопасность на транспортном уровне
- Безопасность на уровне базы данных
- Безопасность на уровне строк
Безопасность на сетевом уровне
Безопасность на данном уровне осуществляется по средствам файрволов и прослушивания адресов. Для повышения безопасности сервера базы данных, можно заблокировать доступ к узлу, на котором работает база данных, на уровне порта, с помощью брандмауэра. Хорошей практикой является ограничение адресов, которые прослушивает сервер для клиентских подключений, с помощью параметра listen_addresses файла конфигурации. Если узел, на котором работает PostgreSQL, имеет несколько сетевых интерфейсов, используйте этот параметр, чтобы убедиться, что сервер прослушивает только те интерфейсы, через который клиенты будут подключаться к нему.
Безопасность на транспортном уровне
Поскольку большая часть всемирной паутины переходит на HTTPS, необходимо использовать надежное шифрование для соединений с базой данных. PostgreSQL поддерживает TLS (который по-прежнему называется SSL в документации, конфигурации и CLI по legacy-причинам) и позволяет использовать его для аутентификации как сервера, так и клиента.
Безопасность на уровне базы данных
PostgreSQL имеет комплексную систему прав пользователя, основанную на концепции ролей. В современных версиях PostgreSQL (8.1 и новее) «роль» является синонимом «пользователя», поэтому любое имя учетной записи базы данных, которое вы используете, на самом деле является ролью с LOGIN атрибутом, который позволяет ей подключаться к базе данных.
Помимо возможности входа в систему, роли могут иметь иные атрибуты, позволяющие им обходить все проверки прав доступа (SUPERUSER), создавать базы данных (CREATEDB), создавать другие роли (CREATEROLE) и другие. Помимо атрибутов, ролям могут быть предоставлены права доступа, которые можно разделить на две категории: членство в других ролях и привилегии на объекты базы данных. Вместо того, чтобы назначать привилегии/роли каждому новому пользователю индивидуально, можно создать «групповую роль» и предоставить другим ролям (сопоставление с отдельными пользователями) членство в этой группе.[11]
Безопасность на уровне строк
Одной из наиболее продвинутых функций системы привилегий PostgreSQL является безопасность на уровне строк, которая позволяет вам предоставлять привилегии подмножеству строк в таблице. Сюда входят как строки, которые могут быть запрошены с помощью оператора SELECT, так и строки, которые могут быть результатами операторов INSERT, UPDATE и DELETE. Без какой-либо определенной политики PostgreSQL по умолчанию использует политику «запретить», что означает, что никакая роль (кроме владельца таблицы, который обычно является ролью, создавшей таблицу) не имеет к ней доступа.
Политика безопасности строк — это логическое выражение, которое PostgreSQL будет применять для каждой строки, которая должна быть возвращена или обновлена. Строки, возвращаемые оператором SELECT, проверяются на соответствие выражению, указанному в разделе USING, в то время как строки, обновленные операторами INSERT, UPDATE или DELETE, проверяются на соответствие с WITH CHECK выражением.
Логирование
Также, PostrgeSQL имеет функцию ведения примитивного журнала логов, который позволяет просмотреть, как, кем и когда изменялась таблица.
Для обеспечения безопасности базы данных, необходимо создать роли (см. Приложение «Создание ролей»), которые будут иметь ограниченный доступ к таблицам и действиям, связанными с ними.[13]
Роли:
Директор
Менеджер
Клиент
Создание пользователя client(Рисунок 33)
Рисунок 33- Создание роли client
Создание пользователя директор(Рисунок 34)
Рисунок 34-Роль директор
Создание пользователя менеджер(Рисунок 35)
Рисунок 35-Роль менеджер
Выводы
В данной главе было произведено физическое проектирование базы данных магазина компьютерных комплектующих. Были реализованы таблицы, соответствующие реляционной модели из второй главы. Для реализации ограничений, обозначенных в первой главе, были написаны триггеры и реализованы представления. Также, был произведён анализ безопасности и контроля базы данных в PostrgeSQL и добавлены пользователи с индивидуальным доступом к таблицам для обеспечения целостности данных.
