Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Laby / ЛР4 / администрирование Firebird

.doc
Скачиваний:
30
Добавлен:
12.04.2015
Размер:
46.08 Кб
Скачать

Методические указания к лабораторной работе №4

по курсу "Базы данных"

CИСТЕМА БЕЗОПАСНОСТИ Firebird

В этой методичке кратко описываются основные понятия системы безопасности СУБД Firebird 1.5.

Определения:

Пользователь – это регистрационная запись на сервере, состоящая из имени пользователя (username) и пароля (password). Имя пользователя состоит из латинских букв (большие и маленькие не различаются) и цифр, длиной до 31 символа. Пароль состоит из латинских букв и цифр (большие и маленькие буквы различаются), длиной до 8 символов (теоретически длина до 32 символов, однако используются первые 8, остальные игнорируются).

Есть один стандартный пользователь с именем SYSDBA и паролем (при установке сервера) masterkey, точнее masterke. Это системный администратор СУБД. Его нельзя удалить или понизить его права, можно только сменить пароль.

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

Вся информация о пользователях хранится в системной базе данных isc4.gdb. Создавать новых пользователей через IB Expert нельзя. Для этого имеется утилита gsec.exe (лежит в каталоге BIN директории, где установлен Firebird). Опишем работу с ней.

1. Запустите cmd.exe

2. В консоли перейдите в каталог Firebird\bin. Запустите с командной строки команду

C:\Program Files\Firebird\bin>gsec.exe –user sysdba –password masterkey

Если пароль masterkey был сменен, указывается текущий пароль пользователя SYSDBA.

3. Программа gsec перейдет в интерактивный режим – появится приглашение

GSEC>

после которого можно вводить любые команды:

quit – выйти из программы;

help – вывести справку по командам;

display – вывести список всех зарегистрированных пользователей;

display имя_пользователя – вывести информацию о пользователе;

delete имя_пользователя – удалить пользователя;

add имя_пользователя параметры – добавить нового пользователя;

modify имя_пользователя параметры – изменить настройки пользователя;

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

–pw пароль

–fname first_имя

–mname middle_имя

–lname last_имя

–uid значение_uid

–gid значение_gid

Например, для регистрации пользователя с ником IVAN, именем Ivan Fedorov и паролем 123 вводится команда

GSEC> add ivan –pw 123 –fname Ivan –lname Fedorov

Роли (ROLE), или категории пользователей – это группы пользователей, обладающих одинаковыми правами на доступ к данным. Обычно заводят столько ролей, сколько должностей в организации. Сотрудники с одинаковыми ролями (должностями) имеют доступ к одному и тому же ограниченному набору данных. Когда приходит новый сотрудник, его username включают в роль, соответствующую его должности, и уровню "секретности".

Роли действуют в пределах своей базы данных.

Существует две стандартных роли: PUBLIC (роль с минимальными правами доступа, в нее автоматически входят все новые пользователи) и OWNER (создатель базы данных, максимальные права).

Новая роль создается SQL-командой

CREATE ROLE ИмяРоли

Или роли можно создавать в IB Expert, щелкая на вкладке ROLES (New Role…).

Каждый пользователь (username) в базе данных может сопоставляться с одной или несколькими ролями, при подключении к БД он выбирает нужную роль. Присвоить роль пользователю можно SQL-командой

GRANT Имя_роли TO Имя_пользователя;

Права (permissions) – это разрешение пользователям или ролям осуществлять какое-то действие над таблицей, представлением или хранимой процедурой. Регламентируются следующие действия:

1. Для таблиц целиком и отдельных столбцов таблиц:

SELECT – право читать данные, INSERT – право добавлять строки; UPDATE – модификация данных; DELETE – право удалять строки; REFERENCES – право создавать Foreign Key, ссылающийся на эту таблицу.

2. Для представлений (view) и их столбцов: SELECT,

Права на изменение данных в представлениях (INSERT, UPDATE, DELETE) фактически относятся либо к триггерам, которые делают представление модифицируемым, либо к таблицам, на которых основано представление.

3. Для хранимых процедур: EXECUTE – право на выполнение процедуры.

Если пользователю выдаются права на объекты, которые ссылаются на другие объекты, то аналогичные права должны быть выданы и на ссылочные объекты. Например, если какой-то роли выдано право на запуск хранимой процедуры, вставляющей строки в какую-то таблицу, то роль должна обладать правом INSERT на эту таблицу.

Права выдаются SQL-оператором

GRANT список_прав ON Имя_объекта TO Имя_пользователя или роли

Можно использовать вместо списка прав слово ALL – выдать все права.

Например, для роли TEACHER выдаются права на просмотр строк в таблице Students и модификацию столбца (Diploma_Theme):

GRANT SELECT ON Students TO TEACHER;

GRANT UPDATE ON Students(Diploma_Theme) TO TEACHER;

Выдавать права можно с помощью IB Expert.

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

Соседние файлы в папке ЛР4