- •Реляционные базы данных субд InterBase
- •Оглавление
- •Подключение к серверу и создание баз данных. Регистрация сервера и базы данных
- •Создание таблиц базы данных
- •Заполнение таблиц базы данных
- •Создание ролей и прав доступа к данным
- •Values('Кока-Кола','банка',1.9)
- •Изменение и удаление таблиц и связей между ними. Генераторы.
- •Создание автоинкрементных полей. Генераторы.
- •Values('Иванов и.И.','Пушкинская 27 кв 1',1)
- •Values('Иванов и.И.','Пушкинская 27 кв 1',1)
- •Создание индексов, триггеров и хранимых процедур.
- •Реализация бизнес-правил на сервере средствами триггеров и хранимых процедур.
- •Работа с бд на другом компьютере.
Заполнение таблиц базы данных
Перейдем на вкладку Данные (Data). Нажмем кнопку «Плюс» и запишем новые данные: Sahar, kg. (Смотри рисунок 10). Цену вводить не будем. Для сохранения результата – нажмем, помимо Post-кнопки еще кнопку COMMIT & REFRESH. Затем попробуем ввести те же значения на русском – удалось ?

Рис.10 Создание новой записи БД

Рис.11 Первичный ключ таблицы
Зависимых объектов пока у нас нет. Переход на закладку Свойства (Properties) показывает, что кроме таблицы у нас создался первичный индекс (смотри рис .11). Поскольку имени ему мы явно не дали, то он имеет имя, данное ему сервером RDB$Primary3.
Создание ролей и прав доступа к данным
А теперь создадим роль – Student_info, зададим ей права на операции SELECT, INSERT, DELETE, UPDATE, REFERENCES и подключим пользователя student к этой роли. Для этого в окне InteractiveSQL наберите следующий скрипт:
CREATE ROLE Student_info;
GRANT SELECT, INSERT,DELETE,UPDATE,REFERENCES ON TOVAR TO Student_Info;
GRANT student_info TO student;
Давайте выполним скрипт и проверим права, которые имеют пользователи на операции с таблицей TOVAR. Они должны соответствовать тому, что показано на рисунке 12

Рис.12 Список Ролей и позволенных для них действий дл таблицы TOVAR
Закончим сеанс пользователя БД SYSDBA и попробуем соединиться с ней заново как Student без указания роли.. Для этого выберем в Меню Database -Connect As… , введем Имя пользователя и пароль. Роль - не задаем. Мы можем соединиться с БД, узнать имена ее объектов (таблиц), но прочитать данные таблицы не можем.
Откроем таблицу Tovar и на вкладке Data попробуем внести изменения в данные. Они заблокированы.
Запустим ISQL и выполним
SELECT * FROM Tovar
А затем
DELETE FROM Tovar
Результат показан на рисунке 13.

Рис.13 Сообщение о запрете удаления записей из таблицы TOVAR
Зарегистрируемся снова как SYSDBA и выполним SQL-оператор, который даст ограниченные права пользователю student.
GRANT SELECT ON TOVAR TO Student
Теперь мы можем только просматривать данные таблицы, но добавлять, редактировать и удалять записи не можем.

Рис.14 Подключение к БД с определенными правами
Отсоединимся от БД и попробуем соединиться с ней заново как Student в роли Student_info. Для этого выберем в Меню Database-Connect As.. , введем Имя пользователя, пароль и роль -Student_info.
Подключимся к БД Tovar как пользователь Student, выполняющий роль Student_Info.
Откроем ISQL и введем -оператор добавления записей:
INSERT INTO tovar (Tov_Name,Tov_EdIzm,Tov_Cena)
Values('Кока-Кола','банка',1.9)
Затем выполним запрос и получим следующий результат:

Рис.15 Чтение записей БД с помощью Interactive SQL
Работая как пользователь Student, выполняющий роль Student_Info мы можем добавлять и изменять записи.
Закончим сеанс работы с БД ( Disconnect ) и соединимся опять, но уже как Student без задания какой-либо роли.
Вывод:
В зависимости от роли пользователь получает разные права на объекты БД. Права получаются в момент соединения пользователя с БД, при этом Имя пользователя и пароль - одни и те же. Роли как правило задаются для групп пользователей, выполняющих одинаковые задачи при работе с БД. Кроме таблиц права задаются на Просмотры и Процедуры.
