Тема: защита информации базы данных, создание прав и привилегий.
Цель работы: научится создавать пользователя базы данных и назначение
ему прав и привилегий.
Для передачи прав доступа, или назначения ограниченного доступа другим
пользователям к базе данных, владелец базы данных (пользователь с именем SYSDBA) должен сначала создать новых пользователей. Новые пользователи БД создаются с помощью программы Server Manager, которая входит в пакет InterBase. После запуска программы Server Manager необходимо соединится с сервером БД (команда Server Login) :
После подтверждения прав администратора базы данных (ввод имени и
пароля)
можно получить доступ к меню создания пользователей User Security:
В открывшемся окне
можно добавлять, удалять пользователя, назначать и изменять пароли для
пользователей.
После того как пользователь создан, необходимо назначить ему привилегии.
Каждый пользователь в SQL базе данных имеет набор привилегий. Это - то
что пользователю разрешается делать ( возможно это - файл регистрации, который может рассматриваться как минимальная привилегия ). Эти привилегии могут изменяться со временем - новые добавляться, старые удаляться.
Привилегии, которые можно назначить пользователю:
SELECT Пользователь с этой привилегией может выполнять
запросы в таблице.
INSERT Пользователь с этой привилегией может выполнять
команду INSERT в таблице.
UPDATE Пользователь с этой привилегией может выполнять
команду UPDATE на таблице. Вы можете ограничить эту привилегию для определен- ных столбцов таблицы.
DELETE Пользователь с этой привилегией может выполнять
команду DELETE в таблице.
REFERENCES Пользователь с этой привилегией может определить
внешний ключ, который использует один или более столбцов этой таблицы, как родительский ключ. Вы можете ограничить эту привилегию для определен- ных столбцов.
Для создания привилегий используется ключевое слово GRANT. Синтаксис
команды:
GRANT INSERT ON SHOPS TO IGOR;
Тип привилегии
Таблица
пользователь
Возможен следующий вид команды:
GRANT INSERT, DELETE ON SHOPS TO IGOR,STAS;
SQL поддерживает два аргумента для команды GRANT, которые имеют
специальное значение: ALL PRIVILEGES (ВСЕ ПРИВИЛЕГИИ) или просто ALL и PUBLIC (ОБЩИЕ). ALL используется вместо имен привилегий в команде GRANT чтобы отдать все привилегии в таблице. Например
GRANT ALL ON SHOPS TO STAS;
ОТМЕНА ПРИВИЛЕГИЙ
Также как ANSI предоставляет команду CREATE TABLE чтобы создать
таблицу, а не DROP TABLE чтобы от нее избавиться, так и команда GRANT позволяет вам давать привилегии пользователям, не предоставляя способа чтобы отобрать их обратно. Потребность удалять привилегии сводится к команде REVOKE, фактически стандартному средству с достаточно понятной формой записи. Синтаксис команды REVOKE - похож на GRANT, но имеет обратный смысл. Чтобы удалить привилегию INSERT для Igor в таблице Shops, вы можете ввести
REVOKE INSERT ON SHOPS TO IGOR;
Использование списков привилегий и пользователей здесь допустимы как и в
случае с GRANT, так что вы можете ввести следующую команду:
REVOKE INSERT, DELETE ON SHOPS TO IGOR,STAS;
Створити нову роль можна шляхом відкриття вкладки ”/Нова роль” або натисненням значка „Нова роль”.
Після натиснення з”являється запрошення ввести ім”я нової ролі.
Після вводу імені воно з”являється в списку „Database Explorer”.
Тепер можна змінювати привілеї для створеної ролі через „Менеджер прав”.