Команда create ROLE

Команда CREATE ROLE реализует первый этап действий при работе с ролями: создает (объявляет) роль в базе данных. Синтаксис команды:

CREATE ROLE ИмяРоли;

Следующая команда создает роль, называемую «bibrole».

CREATE ROLE bibrole;

Команда DROP ROLE

Команда DROP ROLE выполняет действия, обратные CREATE ROLE – удаляет роль из базы данных. Синтаксис команды:

DROP ROLE ИмяРоли;

Роль может быть удалена либо ее создателем, либо пользователем SYSDBA, либо другим пользователем с аналогичными правами.

Следующая команда удаляет роль, называемую «bibrole».

DROP ROLE bibrole;

Формирование списка прав, связанных с ролью

Ролям, созданным командой CREATE ROLE, могут быть предоставлены права так же, как и пользователям. Предоставление прав ролям осуществляется командой GRANT.

Рассмотрим пример предоставления прав (привилегий) роли «bibrole» на выполнение процедуры PAUTHOR.

CREATE ROLE bibrole;

GRANT EXECUTE ON PROCEDURE PAUTHOR TO bibrole;

Формирование прав пользователей на основе ролей

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

Рассмотрим пример, в котором пользователю передаются права, присвоенные ролям.

GRANT bibrole TO misha, masha, Ivan_Ivanovitch;

Связывание пользователей с ролями

В InterBase с пользователем во время его сеанса работы с базой может быть связана только одна роль. В то же время команд GRANT на передачу прав ролей может быть несколько. Такой механизм позволяет динамически связывать набор прав пользователя при его конкретном соединении. Это имеет смысл в тех случаях, когда один и тот же человек выступает в различном качестве. Например, сегодня он работает как кассир, а завтра как приемщик товаров.

Таким образом, связь между ролью и пользователем осуществляется не при выдаче команды GRANT, а при соединении пользователя с базой. Реализация такой связи осуществляется командой CONNECT. Базовый синтаксис команды CONNECT для нашего случая выглядит следующим образом:

CONNECT USER ‘username’

PASSWORD ‘password’

ROLE ‘rolename’;

Таким образом, один и тот же пользователь при входе в систему может получить различные наборы прав.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: