Безопасность систем баз данных: Задания на лабораторные работы № 1-6. Вариант 20 (База данных "Файлы пользователей социальной сети"), страница 2

Входные параметры: имя учетной записи пользователя, путь, имя файла, расширение имени файла, содержимое файла.

Выходной параметр: код завершения процедуры. Возможные значения:

·  0 – процедура завершена успешно;

·  1 – неверное имя учетной записи;

·  2 – неверный путь.

Примечание. Процедура не должна проверять уникальность имени файла в пределах папки. За это отвечает отдельное ограничение целостности или триггер.

7. Процедура копирования/перемещения файла.

Входные параметры: имя учетной записи текущего пользователя, источник (внутренний путь плюс имя файла с расширением), приемник (только внутренний путь), новое имя файла, флаг удаления.

Примечание 1. Под текущим пользователем понимается пользователь социальной сети, желающий выполнить копирование или перемещение файла. Прежде чем выполнить операцию, процедура проверяет полномочия текущего пользователя.

Примечание 2. Новое имя файла задается только в том случае, если копия на приемнике должна быть переименована. Если переименование не требуется, вместо нового имени указывается NULL. Флаг удаления указывает, следует ли удалять исходный файл из папки-источника: 0 – не удалять (выполняется копирование), 1 – удалять (выполняется перемещение).

Примечание 3. Текущий пользователь не может перемещать файлы с чужих страниц. Вместо перемещения с чужой странице по умолчанию выполняется копирование (при наличии у пользователя соответствующего права на доступ к файлу).

Примечание 4. Текущий пользователь не имеет права копировать или перемещать файлы на чужие страницы.

Выходной параметр: код завершения процедуры. Возможные значения:

·  0 – процедура завершена успешно;

·  1 – источник задан неверно;

·  2 – приемник задан неверно;

·  3 – приемник находится на чужой для текущего пользователя странице;

·  4 – текущий пользователь не имеет права на копирование файла;

·  5 – вместо перемещения выполнено копирование файла.

8. Процедура копирования/перемещения папки.

Данная процедура схожа с процедурой 7. Разница в том, что копирование/перемещение папки предполагает копирование или перемещение всех вложенных в нее элементов.

9. Процедура удаления файла/папки.

Входные параметры: имя учетной записи пользователя, полное имя файла/папки.

Примечание. Процедура должна самостоятельно определять вид удаляемого объекта.

Выходной параметр: код завершения процедуры. Возможные значения:

·  0 – процедура завершена успешно;

·  1 – неверное имя учетной записи;

·  2 – неверное имя объекта или неверный путь к нему.

10. Процедура отметки поврежденного файла.

Входные параметры: имя учетной записи владельца файла, путь к файлу, полное имя файла, произвольное сообщение о характере повреждения.

Примечание. Процедура автоматически прописывает в БД текущую системную дату обнаружения проблемы.

Выходной параметр: код завершения процедуры. Возможные значения:

·  0 – процедура завершена успешно;

·  1 – неверное имя учетной записи;

·  2 – неверное имя файла или неверный путь к файлу.

Лабораторная работа №6

Реализовать в базе данных следующие ограничения.

1. Тип доступа для просмотра и копирования файла/папки принимает одно из следующих значений: 0 – «только мне», 1 – «только мне и друзьям», 2 – «только мне, друзьям и друзьям друзей», 3 – «всем пользователям».

2. Имя каждого объекта (файла или папки) уникально в пределах той папки, в которой он расположен.

3. Дата создания папки – более ранняя, чем дата ее обновления.

4. При любом изменении содержимого папки устанавливается дата последнего обновления папки, равная дате выполненного изменения.

5. Дата создания файла – более ранняя, чем дата обнаружения проблемы в этом файле.

6. При установке типа разрешения на просмотр и копирование папки такой же тип разрешения устанавливается для всех вложенных в нее элементов.