Меню
Главная
Авторизация/Регистрация
 
Главная arrow Информатика arrow Базы данных

Понятие роли

Начиная с версии InterBase 5, добавлено новое понятие — роль. Роль представляет собой шаблон привилегий для работы с объектом (таблицей, просмотром, хранимой процедурой и т. д.). Роль принадлежит базе данных, в которой она создана. Она имеет уникальное имя не только среди ролей, но и среди имен пользователей.

К одной роли можно подключить множество пользователей, и все они будут обладать одинаковыми привилегиями. Роль серьезным образом облегчает работу администратора базы данных. Например, база данных состоит из 30 таблиц, с которыми работают 100 пользователей. В общем случае для предоставления привилегий этим пользователям надо 3000 раз подать оператор GRANT. Использование ролей предоставляет возможность сгруппировать пользователей с одинаковыми привилегиями, и привилегии предоставлять группе пользователей.

Общий алгоритм работы с ролями:

  • • зарегистрировать нового пользователя (или пользователей);
  • • создать роль;
  • • назначить привилегии роли;
  • • прикрепить пользователя (или пользователей) к роли.

Один пользователь может быть прикреплен ко многим ролям.

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

Во время одного сеанса работы пользователь не может сменить роль.

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

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

При переносе базы данных из младших версий InterBase в версию 5 и старше необходимо после выполнения процедуры Restore создать роли и прикрепить к ним пользователей.

Роль выгодно отличается от пользователя PUBLIC, так как пользователь при подключении к базе данных указывает не только имя роли, но и свое имя (user пате), которое позволяет администратору базы данных его идентифицировать. При увеличении (или уменьшении) привилегий у роли автоматически эти изменения получают и все пользователи, прикрепленные к этой роли.

Создание роли

Для создания новой роли используется команда CREATE ROLE. Формат команды

CREATE ROLE <имя роли>

Новая роль не имеет никаких привилегий. Любой пользователь базы данных может создать роль, но назначить роли привилегии может или пользователь SYSDBA, или владелец базы данных, или пользователь с правом наследования привилегий.

Пример 13.21. Создать роль.

CREATE ROLE R_UPD;

CREATE ROLE R ALL;

CREATE ROLE R_SP;

С помощью трех команд CREATE ROLE созданы три роли.

Назначение привилегий роли

Привилегии присваиваются роли с помощью оператора GRANT. Формат оператора

GRANT ссписок привилегий> ON имя таблицы | просмотра}> ТО <имя роли>;

Пример 13.22. Присвоить роли RUPD привилегии.

GRANT Select, Update ON Town ТО R U PD;

В результате работы оператора GRANT роль R U PD получит две привилегии Select и Update для работы с таблицей Town.

Пример 13.23. Присвоить роли RALL привилегии.

GRANT Ail ON Town ТО RALL;

В результате работы оператора GRANT роль RALL получит все привилегии для работы с таблицей Town.

Пример 13.24. Присвоить роли R ALL привилегию использования хранимой процедуры.

GRANT Ex?cut? ON PROCEDURE Ostatok ТО R ALL;

В результате работы оператора GRANT роль R ALL дополнительно к имеющимся привилегиям (см. пример 13.23) получит привилегию использования хранимой процедуры Ostatok.

Прикрепление пользователя к роли

Назначить роль пользователю можно, используя оператор GRANT. Формат оператора

GRANT<имя роли 1 [, имя роли 2 ...]> ТО PUBLIC |

<имя пользователя 1> [,<имя пользователя 2> ...]

[ WITH ADMIN OPTION];

Опция WITH ADMIN OPTION назначает пользователю право наследования роли, т. е. пользователь по своему усмотрению может назначить эту роль другому пользователю базы данных.

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

Пример 13.25. Назначить пользователю USER CHEFF роль RALL.

GRANT R_ALL TO USER_CHEFF;

В результате работы оператора GRANT пользователь USER CHEFF при подключении к базе данных и указании имени роли дополнительно к имеющимся привилегиям (см. пример 13.15) получит привилегии роли RALL.

Пример 13.26. Назначить четырем пользователям по три роли каждому.

GRANT R ALL, R_UPD, R_SP TO USERJ, USER_2, USER_3,

USER 4;

Пример 13.27. Назначить пользователю USER CHEFF роль R ALL и предоставить право наследования роли.

GRANT R ALL ТО USER CHEFF WITH ADMIN OPTION;

После выполнения оператора GRANT пользователь USER CHEFF сам может назначать эту роль другим пользователям базы данных.

Отмена привилегий роли

Привилегии, ранее назначенные роли, можно отменить полностью или частично, используя оператор REVOKE. Формат оператора

REVOKE <список привилегий> ON <имя таблицы>

FROM <имя роли>;

Если роль лишили одной или нескольких привилегий, то и все пользователи, прикрепленные к этой роли, теряют право на использование этих привилегий.

В примере 13.23 роли R ALL были назначены все привилегии для работы с таблицей Town.

Пример 13.28. Изъять у роли R ALL привилегию Delete для работы с таблицей Town.

REVOKE Delete ON Town FROM R ALL;

Пример 13.29. Изъять у роли R ALL еще две привилегии для работы с таблицей Town.

REVOKE Execute, Update ON Town FROM R ALL;

Изъятие ролей у пользователя

Для отмены одной роли у пользователя используется оператор REVOKE. Формат оператора

REVOKE <имя роли> FROM <имя пользователя^

В примере 13.26 были назначены роли четырем пользователям.

Пример 13.30. Изъять у пользователя USER 4 роль R ALL. REVOKE R ALL FROM USER_4;

Удаление роли

Ранее созданную роль можно удалить с помощью команды DROP ROLE. Формат команды

DROP ROLE <имя роли>;

Удалить роль может либо пользователь SYSDBA, либо пользователь, создавший роль.

Пример 13.31. Удалить роль R SP.

DROP ROLE R SP;

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

Управление привилегиями с помощью утилиты 1ВСоП5о1

Работа с утилитой ИЗСопзо! выполняется в два этапа: сначала на сервере регистрируется новый пользователь, а затем этому пользователю предоставляются привилегии для работы в конкретной базе данных отдельно для каждой таблицы и хранимой процедуры.

Регистрация пользователя

Зарегистрировать нового пользователя на сервере может администратор базы данных (пользователь SYS DBA). После запуска сервера на дереве объектов необходимо выбрать объект «Users» (рис. 13.1) и, далее, из контекстного меню — команду «Add User».

  • 93 IBConsole
  • ?US

Console View Server Database Tools

Help

  • *
  • 4
  • -

^ OTDEL.GDB ^ RAIONI.GDB

  • * SHOES.GDB
  • * Subs.GDB TELE2.GDB

^ TELEPHONES ^ TIMBRE.GDB ^ Timbre_post Щ WINES.GDB ZWK

§jjp Backup Щ Certificates W| Server Log

User Name

First Name Middle Name Last Name

Add User...

-

ini

1

Ш

Modify User...

User: SYSDBA

2

Server: Local Server

Рис. 13.1. Запуск процедуры регистрации пользователя

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

Рис. 13.2. Определение характеристик пользователя

В диалоге «User Information» (рис. 13.2) необходимо определить характеристики пользователя:

User Name — пользователь;

Password — пароль;

Confirm Password — повтор пароля;

First Name — имя пользователя;

Middle Name — отчество пользователя;

Last Name — фамилия пользователя.

Кнопка «Apply» фиксирует нового пользователя на сервере. Назначение остальных кнопок — очевидное.

Если все действия выполнены правильно, то в окне «IBConsol» будет добавлена соответствующая запись (рис. 13.3).

Пользователь добавлен

Рис. 13.3. Пользователь добавлен

Назначение привилегий пользователю

Предварительно открывается нужная база данных. Затем выбирается объет «Tables» и потом вкладка «Permission» (рис. 13.4). На вкладке «Permission» можно только просмотреть пользователей базы данных и их привилегии для работы с выбранной таблицей. В нижней части окна «Properties for. BOOK» имеется подсказка «This permission includes GRANT OPTION» — добавление привилегий командой GRANT.

This perrrissbn indudes GRANT OPTION

C:BD_B_C++BffiLIOTh?KlNABooksBOC*S.GC6Tables^

Рис. 13.4. Просмотр привилегий пользователей

Для назначения привилегий пользователю необходимо вызвать на экран окно командной строки

Tools —» Interactive SQL и подать команду

GRANT Select, Insert ON Book TO USERJNS;

В результате выполнения этой команды пользователь USER INS получит две привилегии Select и Insert для работы с таблицей Book (рис. 13.5).

ПІН

і -

13 Properties for: BOOK

Шок.

Properties Metadata Permissions Data | Dependencies

Object

Select

Delete

Insert

Update

Reference

Execute

Member Of

gSYSDBA

^ Y ^ Y ^ Y

^ Y

^ Y

Щ USERJNS

Y

Y

This permission includes GRANT OPTION

Tables

$] BConsole

?BJS

Ccrwole View Server

Database Too

Is Window

$ H?|p

* * I * * і

11 ’

InterBase Servers - ^ Local Server в'-^f Databases

Name

ШЗ ADMINS

ГШ book

ОТ СИАМЕ ГШ fam ГШ IZD ОТ KATALOG ОТ NAM ОТ SEC ОТ TOWN ОТ UNAME

Owner

SYSDBA

SYSDBA

SYSDBA

SYSDBA

SYSDBA

SYSDBA

SYSDBA

SYSDBA

SYSDBA

SYSDBA

Description

S? * * « % «

APPE.GD8 AQUARIUM GDB Auto

BAZA_BIBL BEER.gdb BEER2GDB BOOKS GDB (•«3 Demons ОТ Tables _ (Й) Indexes З5 Views Stored Pi Ex External f % Generato

UE Properties for: BOOK

  • •иш
  • 800K

Properties I Metadata Perrrissioro Data Dependencies

Object

ШSYSDBA

Select

Y

Cdete

Y

Insert

Y

Update

Y

Reference

Y

Execute

Member Of

C : BD_IB_C++BIBLIOTHEKIN ABooksBOOKS. GDB

Рис. 13.5. Назначение привилегий пользователю

Контрольные вопросы

  • 1. Сколько уровней защиты данных предусмотрено в InterBase? Назовите эти уровни.
  • 2. Где регистрируется пользователь InterBase?
  • 3. С какой базой данных может работать пользователь InterBase?
  • 4. Расскажите об особенностях защиты паролей пользователей в InterBase.
  • 5. Пользователь SYSDBA: его права и привилегии.
  • 6. Пользователь PUBLIC: его права и привилегии.
  • 7. Кто имеет право регистрировать новых пользователей базы данных?
  • 8. Утилита командной строки для регистрации новых пользователей: формат и особенности работы.
  • 9. Как выполняется назначение, изменение и удаление пользователей?
  • 10. Кто может выполнять действия, указанные в вопросе 9?
  • 11. Что такое привилегии и кому они назначаются?
  • 12. Кто может назначать привилегии?
  • 13. Для работы с какими объектами базы данных могут выдаваться привилегии?
  • 14. Утилита командной строки для назначения привилегий: формат и особенности работы.
  • 15. Что такое право наследования? Как оно передается? Кем оно изымается?
  • 16. Команда на изменение и отмену привилегий: формат команды и особенности работы.
  • 17. Кто может изменить и изъять привилегии?
  • 18. Объясните, что такое роль? Зачем нужны роли?
  • 19. Сколько ролей может иметь один пользователь базы данных?
  • 20. Укажите общий алгоритм работы с ролью.
  • 21. Команда создания роли: формат команды и особенности работы.
  • 22. Как назначаются привилегии роли?
  • 23. Как прикрепляется пользователь к роли?
  • 24. Расскажите о процедуре отмены привилегий роли.
  • 25. Кто и как может отключить пользователя от роли?
  • 26. Назовите команду удаления роли. Особенности работы команды.
 
Если Вы заметили ошибку в тексте выделите слово и нажмите Shift + Enter
< Пред   СОДЕРЖАНИЕ   След >
 

Популярные страницы