Здавалка
Главная | Обратная связь

Лабораторная работа №11.



Безопасность хранимых данных

 

Цель работыИзучить используемые в Firebird способы обеспечения безопасности данных. Получить навыки создания и удаления пользователей и ролей, а также использования команд выдачи и отмены прав.

 

Теоретические сведения

 

Система защиты данных в InterBase

Обеспечение безопасности хранимых данных является неотъемлемой частью любой современной СУБД. Как и в большинстве других СУБД, в InterBase защита данных основана на концепции пользователей, которые получают определенные права для работы с объектами базы данных.

Под пользователем понимается регистрационная запись, состоящая из имени пользователя и его пароля.

Администратор СУБД InterBase (пользователь SYSDBA) заводит необходимое число пользователей и назначает им необходимые для выполнения их должностных обязанностей права.

В СУБД InterBase данные о пользователях всех баз данных хранятся не в этих базах данных, а в особой базе данных пользователей, которая для InterBase и Firebird 1.0 располагается в файле "ISC4.gdb", а для Firebird 1.5 – в файле "security.fdb".

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

 

обеспечения безопасности информации, хранящейся в базе данных InterBase, следует осуществить защиту файла базы данных на уровне ОС, запретив се-тевой доступ к файлам базы данных и установив соответствующие права доступа на папки и файлы, а также ограничить доступ посторонних лиц к компьютеру-серверу.

 

Пользователи

Среди всех пользователей главнейшим является системный администратор сервера InterBase по имени SYSDBA. Этот пользователь обладает всеми правами над любым объектом базы данных. После установки сервера пароль системного администратора "masterkey". Рекомендуется изменить этот пароль сразу после установки сервера и регулярно менять его впоследствии.

Только SYSDBA может создавать и изменять новых пользователей. Максимальная длина имени пользователя 31 символ, используемая длина па-роля – до 8 символов. Для создания пользователей проще всего использовать программу "IB Expert". На рис. 32 показано окно, вызываемое командой меню "Tools -> User Manager".

 

Окно создания и изменения пользователей

 

Обычно в информационной системе на базе InterBase заводят столько пользователей, сколько человек ее использует.

 

Роли

Роли (Roles) служат для организации пользователей с одинаковыми правами в группы. Например, если имеется группа пользователей, для которых нужен доступ только на чтение, то создается роль с именем READER, этой роли присваиваются все необходимые права, а затем эта роль со всеми ее правами назначается конкретному пользователю.

Роли – это объекты базы данных. Чтобы создать роль с именем READER, необходимо выполнить следующую команду:

 

CREATE ROLEREADER;

 

Удаляет роль команда

DROP ROLEREADER;

 

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

 

Права

Права в InterBase – это разрешение какому-либо пользователю, хранимой процедуре или триггеру совершить какую-либо операцию над определенным объектом базы данных.

Для таблиц (TABLE), представлений (VIEW), а также их полей права выдаются на выполнение операций SELECT, DELETE, INSERTи UPDATE.

Для хранимых процедур права выдаются на операцию EXECUTE.

Права на объекты базы данных раздаются с помощью команды GRANT.

Примеры выдачи прав:

1. Выдать пользователю USER1 права на выборку из таблицы Table1:

 

GRANT SELECT ON Table1 TO USER1;

2. Выдать пользователю USER1 права на чтение и вставку данных, но не на изменение:

GRANT SELECT, INSERT ONTable1 TOUSER1;

3. Выдать всех возможных прав на таблицу:

GRANT ALL ONTable1 TOUSER1;

4. Выдать права сразу нескольким пользователям:

GRANT ALL ONTable1 TOUSER1,USER2;

5. Выдать права сразу всем пользователям InterBase:

GRANT SELECT, INSERT ONTable1 TO PUBLIC;

6. Выдача права на чтение данных только из нескольких полей таблицы или представления:

GRANT SELECT ONTable1(Field1,Field3) TOUSER1;

7. Выдача разрешения выполнять хранимую процедуру:

GRANT EXECUTE ON PROCEDUREProc1 TOUSER1;

8. Разрешение вызова процедуры Proc2 из процедуры Proc1 без наличия таких прав у пользователя, вызвавшего Proc1:

GRANT EXECUTE ON PROCEDUREProc2 TOProc1;

Чтобы уменьшить количество выдаваемых разрешений, пользователей объединяют в группы по принципу наличия у них одинаковых прав. Чтобы использовать роль необходимо выполнить следующие действия:

1. Создать роль.

2. Выдать этой роли все необходимые права.

3. Назначить конкретным пользователям эту роль.

4. При подсоединении к базе данных указать не только имя пользователя и пароль, но и роль, права которой будет иметь пользователь.

 

CREATE ROLEREADER;

GRANT SELECT ONTable1 TOREADER;

GRANTREADER TOUSER1;

Теперь пользователь USER1 должен при подключении к базе данных указать роль READER, и тогда он получит все права, назначенные для этой роли.

Раздавать права может только владелец объекта и пользователь SYSDBA. Владельцем объекта считается пользователь, который его создал. Чтобы не только выдать пользователю права на доступ к объекту, но и разрешить передачу этих прав другим пользователям, в конце обычной команды GRANTнеобходимо добавить WITH GRANT OPTIONS.

Для отмены прав используется команда REVOKE, синтаксис которой аналогичен команде GRANT.

Пример отмены у пользователя USER1 права на удаление из таблицы Table1:

REVOKE DELETE ON Table1 FROM USER1;

 

Задание

Лабораторную работу следует выполнять в следующем порядке:

 

1. Создать аналогично предыдущим лабораторным работам рабочую папку и назвать ее "ЛР11".

2. Скопировать в эту папку файл сценария, созданный при выполнении пре-дыдущей лабораторной работы.

3. Открыть в приложении "IB Expert" этот сценарий.

4. Исправить текст комментариев и сделать, чтобы база данных теперь соз-давалась в папке "ЛР11".

5. Добавить в конец сценария операторы создания не менее трех ролей и вы-дачи их необходимых прав. Каждый оператор должен иметь поясняющие комментарии. Назначить созданные роли имеющимся на сервере пользо-вателям.

6. Выполнить сценарий и сохранить его в рабочей папке.

7. Зарегистрировать созданную базу данных в программе "IB Expert" и под-ключиться к ней по имени пользователя, который не является хозяином базы данных или администратором сервера, с использованием каждой из ролей.

8. Проверить правильность функционирования ограничения доступа.

9. Создать в своей базе данных одну роль с названием "TestRole" в диалоговом режиме.

10. Выдать этой роли права на чтение данных из всех таблиц.

11. Создать в рабочей папке резервную копию базы данных.

12. Создать и сохранить в папке "ЛР11" файл с отчетом о выполнении лабора-торной работы, который должен называться "Отчет.doc".

 

Ход работы

Для создания роли в диалоговом режиме программы "IB Expert" необходимо выполнить следующие действия:

 

1. Подключиться к базе данных.

 

2. Выполнить команду "Database->New Role".

 

3. Ввести в единственном поле диалогового окна "Create Role" имя роли и нажать кнопку [OK].

 

Для выдачи роли или пользователю прав на выполнение операций с объектами базы данных служит окно "Grant Manager", открываемое по команде "Tools->Grant Manager".

Окно просмотра и изменения привилегий

 

Выданные привилегии на какую-либо операцию обозначаются зеленым кружком в соответствующей ячейке. Например, на рисунке для роли TestRole можно увидеть для таблицы Employee выданные права на выполнение опера-ций SELECT, UPDATE, DELETEи INSERT. Для остальных видимых в окне таблиц имеются права только на чтение.

 

Чтобы выдать или отменить право на выполнение какой-либо операции, надо всего лишь сделать двойной щелчок мышью в соответствующей ячейке.

 







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.