Скачиваний:
0
Добавлен:
28.12.2024
Размер:
194.67 Кб
Скачать

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ,

СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ

УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»

(СПбГУТ)

Кафедра Защищенных систем связи

Факультет Кибербезопасности

Дисциплина Основы построения сертифицированных защищенных БД РФ

ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ

УСТАНОВКА POSTGRESQL

(тема отчета)

Направление/специальность подготовки

10.03.01 Информационная безопасность

(код и наименование направления/специальности)

Студент:

Травкина Е.А., ИКБ-14

(Ф.И.О., № группы) (подпись)

Федченко А.С., ИКБ-14

(Ф.И.О., № группы) (подпись)

Ящук А.А., ИКБ-14

(Ф.И.О., № группы) (подпись)

Преподаватель:

к.т.н., доцент, Пестов И.Е.

(должность, Ф.И.О.) (подпись)

Оглавление

Цель лабораторной работы 3

Задачи 3

Используемое программное обеспечение 3

Ход работы 3

Вывод 5

Листинг команд 6

Цель лабораторной работы

Изучить основные команды управления PostgreSQL, включая создание пользователя, базы данных и таблиц.

Задачи

В рамках лабораторной работы необходимо выполнить следующее:

  1. установить PostgreSQL на ОС Astra Linux;

  2. отключить мандатных атрибутов;

  3. создать базу данных для пользователя user.

Используемое программное обеспечение

Для выполнения лабораторной работы используется установленный дистрибутив ОС Astra Linux.

Ход работы

Ход выполнения лабораторной работы:

  1. Установили базу данных PostgreSQL следующими командами:

sudo apt update

sudo apt install postgresql postgresql-contrib

  1. В разделе «Политика безопасности» выбрали «Мандатный контроль целостности» и сняли галочку «Подсистема Мандатного Контроля Целостности». Применили изменения и перезагрузили систему. После чего мандатный контроль целостности отключён.

В Astra Linux существуют мандатные атрибуты безопасности, которые блокируют определенные действия (в нашем случае создание баз данных и пользователей в PostgreSQL). Поэтому чтобы обойти эти ограничения и создать пользователя с базой данных в PostgreSQL, мы и отключили мандатный контроль.

  1. После входа в PostgreSQL (см. рисунок 1), создали пользователя “user” командой:

CREATE USER “user”;

Рисунок 1. Вход в PostrgeSQL с пользователем postgres

  1. Добавили user в перечень владельцев баз данных и создали ему базу данных db1. Проверили создание db1 в списке баз данных (см. рисунок 2).

Рисунок 2. Создание нового пользователя и базы данных

  1. Создали 3 таблицы (users, orders, payments) и заполнили их значениями (см. Листинг).

Вывод

В ходе лабораторной работы было установлено и настроено окружение PostgreSQL на ОС Astra Linux. Были отключены мандатные атрибуты для корректной работы с БД. Создан новый пользователь и база данных. В базе данных db1 были созданы три таблицы: users, orders и payments. Таблица users содержит информацию о пользователях, таблица orders хранит данные о заказах, а таблица payments — о произведённых оплатах. Между таблицами были установлены связи с использованием внешних ключей, что обеспечило целостность данных.

Далее, были выполнены операции по добавлению данных в созданные таблицы с использованием команды INSERT. В таблицу users добавлены 10 пользователей, каждому из которых сопоставлены заказы и оплаты через таблицы orders и payments. Таким образом, были сформированы отношения между пользователями, их заказами и оплатами, что продемонстрировало возможности реляционной модели для управления связанными данными.

В завершение работы были проведены запросы на выборку данных из таблиц с помощью команды SELECT, что позволило получить и проверить корректность добавленных данных.

Листинг команд

user@server:~$ sudo apt update

user@server:~$ sudo apt install postgresql postgresql-contrib

user@server:~$ sudo -i -u postgres [sudo] пароль для user:   postgres@server:~$ psql psql (11.21 (Debian 1:11.21-astra.se8)) Введите "help", чтобы получить справку. postgres=# CREATE USER “user”;

postgres=# CREATE DATABASE db1 OWNER “user”;

postgres=# \l                                  Список баз данных    Имя    | Владелец | Кодировка | LC_COLLATE  |  LC_CTYPE   |     Права доступа       -----------+----------+-----------+-------------+-------------+----------------------- db1       | user     | UTF8      | ru_RU.UTF-8 | ru_RU.UTF-8 |   postgres  | postgres | UTF8      | ru_RU.UTF-8 | ru_RU.UTF-8 |   template0 | postgres | UTF8      | ru_RU.UTF-8 | ru_RU.UTF-8 | =c/postgres          +           |          |           |             |             | postgres=CTc/postgres template1 | postgres | UTF8      | ru_RU.UTF-8 | ru_RU.UTF-8 | =c/postgres          +           |          |           |             |             | postgres=CTc/postgres (4 строки) postgres=# \c db1 Вы подключены к базе данных "db1" как пользователь "postgres". db1=# CREATE TABLE users ( db1(# user_id SERIAL PRIMARY KEY, db1(# username VARCHAR(50) NOT NULL, db1(# email VARCHAR(100) NOT NULL UNIQUE ); CREATE TABLE db1=# CREATE TABLE orders ( order_id SERIAL PRIMARY KEY,      order_date DATE NOT NULL,                     user_id INT REFERENCES users(user_id) );                CREATE TABLE db1=# CREATE TABLE payments ( payment_id SERIAL PRIMARY KEY, payment_date DATE NOT NULL, user_id INT REFERENCES users(user_id), amount DECIMAL(10,2) NOT NULL); CREATE TABLE db1=# \dt            Список отношений Схема  |   Имя    |   Тип   | Владелец   --------+----------+---------+---------- public | orders   | таблица | postgres public | payments | таблица | postgres public | users    | таблица | postgres (3 строки) db1=# INSERT INTO users (username, email) VALUES ('Sasha','sasha@mail.com'), ('Liza','liza@mail.com'), ('Nastya','nastya@mail.com'), ('ML','ml@mail.com'), ('SH','sh@mail.com'), ('LF','lf@mail.com'), ('NP','np@mail.com'), ('LL','ll@mail.com'), ('dL','dl@mail.com'), ('HL','hl@mail.com')   ; INSERT 0 10 db1=# SELECT*FROM users;                          user_id | username |      email        ---------+----------+-----------------       1 | Sasha    | sasha@mail.com       2 | Liza     | liza@mail.com       3 | Nastya   | nastya@mail.com       4 | ML       | ml@mail.com       5 | SH       | sh@mail.com       6 | LF       | lf@mail.com       7 | NP       | np@mail.com       8 | LL       | ll@mail.com       9 | dL       | dl@mail.com      10 | HL       | hl@mail.com (10 строк)

db1=# INSERT INTO orders (order_date, user_id) VALUES     ('2024-09-12', 1), ('2024-09-13', 2), ('2024-09-14', 3), ('2024-09-15', 4), ('2024-09-15', 5), ('2024-09-16', 6), ('2024-09-16', 7), ('2024-09-16', 8), ('2024-09-17', 9), ('2024-09-17', 10); INSERT 0 10 db1=# SELECT*FROM orders;                                 order_id | order_date | user_id   ----------+------------+---------        1 | 2024-09-12 |       1        2 | 2024-09-13 |       2        3 | 2024-09-14 |       3        4 | 2024-09-15 |       4        5 | 2024-09-15 |       5        6 | 2024-09-16 |       6        7 | 2024-09-16 |       7        8 | 2024-09-16 |       8        9 | 2024-09-17 |       9       10 | 2024-09-17 |      10 (10 строк) db1=# INSERT INTO payments (amount, user_id) VALUES                     (666, 1),              (5, 2),              (10192.3, 3),              (10000, 4),              (2.5, 5),              (2, 6),              (10, 7),              (35.84, 8),              (15.4, 9),              (100.25, 10);              INSERT 0 10 db1=# SELECT*FROM payments;                           payment_id | user_id |  amount    ------------+---------+----------          1 |       1 |   666.00          2 |       2 |     5.00          3 |       3 | 10192.30          4 |       4 | 10000.00          5 |       5 |     2.50          6 |       6 |     2.00          7 |       7 |    10.00          8 |       8 |    35.84          9 |       9 |    15.40         10 |      10 |   100.25 (10 строк)

Санкт-Петербург

2024

Соседние файлы в предмете Основы построения сертифицированных защищенных баз данных РФ