КаталогИндекс раздела
НазадОглавлениеВперед


6.4 Уровни объектов и привилегии

Как мы сформулировали выше, в широком понимании привилегия - это разрешение на выполнение конкретной операции над конкретным объектом или объектами. Однако, объекты, на которые распространяются привилегии имеют сложную структуру, показанную на рис.6.6.


Рисунок 6.6 - Иерархия объектов баз данных

Менеджер СУБД является собственно программным кодом СУБД. Для каждого менеджера может быть создан один или несколько экземпляров.

Экземпляр менеджера СУБД - логическая среда, которая характеризуется своими ресурсами и параметрами. Экземпляр, однако, по-разному понимается разными СУБД. С точки зрения Oracle экземпляр - это среда времени выполнения, его ресурсы составляют набор выполняющихся процессов Oracle и общая системная область памяти (SGA - system global area). В каждом экземпляре Oracle "монтируется" и "открывается" одна база данных и экземпляр выполняет функции монитора этой базы данных. DB2 понимает под экземпляром логическую среду, включающую в себя несколько баз данных и постоянно хранимые параметры. Экземпляр, таким образом, является монитором нескольких баз данных. Экземпляры выполняются совершенно независимо друг от друга. Такой механизм позволяет осуществлять раздельное администрирование и настройку параметров экземпляров, повышает безопасность и надежность обработки данных.

На понятии базы данных наши две СУБД опять сходятся. Базой данных называется коллекция данных, рассматриваемая как единое целое. База данных характеризуется занимаемой ею памятью (табличными пространствами) и каталогом (словарем). В каждой базе данных может быть создано несколько схем.

Схема - набор объектов базы данных. Каждая схема, как правило, связывается с определенным пользователем (то есть, это - та схема данных, которую видит данный пользователь) и имя схемы совпадает с именем пользователя. По умолчанию каждый пользователь работает с объектами в своей схеме и создает объекты в своей схеме. Однако пользователь может (если это емуразрешено) иметь доступ и к объектам в другой схеме или менять схему, в которой он работает. Объекты схемы - таблицы, представления, индексы и т.д. - скалярные (не контейнерные) объекты базы данных.

Обе рассматриваемые нами СУБД по-разному подходят к назначению привилегий для контейнерных и скалярных объектов. В DB2 привилегии, относящиеся к экземпляру и, частично, к базе данных, выделены в отдельное понятие полномочий. Прочие привилегии - как для контейнерных, так и для скалярных объектов - также различаются.

Oracle объединяет привилегии, относящиеся ко всем контейнерным объектам, в понятие системные привилегии, а все остальные - в привилегии объектов схемы.

6.4.1 DB2: полномочия и привилегии

В DB2 разрешения пользователю выполнять те или иные действия делятся на полномочия и привилегии. Полномочие является методом группирования привилегий и возможности управлять менеджером базы данных и системными утилитами. Полномочия, связанные с базой данных, записываются в каталог соответствующей базы данных, полномочия, связанные с управлением системой записываются в файл конфигурации менеджера СУБД для данного экземпляра.

Полномочия в DB2 являются предустановленными. Имеются следующие виды полномочий.

Полномочие SYSADM - администрирования системы - является высшим уровнем полномочий и обеспечивает контроль над всеми ресурсами, которыми управляет менеджер базы данных. Это полномочие включает в себя также полномочия DBADM (для всех баз данных в экземпляре), SYSCTRL и SYSMAINT, а также разрешение давать и забирать полномочия DBADM. Пользователь с полномочием SYSADM имеет полный доступ ко всем объектам всех баз данных в данном экземпляре.

Полномочие DBADM - администрирования базы данных - определяется для отдельной базы данных. Оно включает в себя разрешение на полный доступ ко всем объектам этой базы данных посредством операторов SQL, на создание объектов и на выполнение команд базы данных. Полномочие DBADM также включает в себя возможность давать и забирать привилегию CONTROL и другие привилегии.

Полномочие SYSCTRL - управления системой - высший уровень управления системой, применяется только к системным ресурсам. Оно не дает разрешения на прямой доступ к данным, но позволяет создавать базы данных, изменять их конфигурацию и уничтожать их, создавать и уничтожать табличные пространства. Это полномочие включает в себя также полномочие SYSMAINT.

Полномочие SYSMAINT - сопровождения системы - второй уровень управления системой. Оно дает возможность выполнять операции по сопровождению всех баз данных в данном экземпляре: изменять конфигурацию баз данных, выполнять их копирование/восстановление, и управлять базами данных. Оно не дает разрешения на прямой доступ к данным.

Полномочия SYSADM, SYSCTRL, SYSMAINT даются группам, имена которых определяются в конфигурационных параметрах sysadm_group, sysctrl_group, sysmaint_group соответственно. Членство в этих группах управляется вне менеджера базы данных - средствами безопасности той платформы, на которой функционирует СУБД.

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

Привилегии базы данных - включают в себя действия над базой данных в целом, в том числе привилегии:

Привилегии схемы - включают в себя действия над определенной схемой в базе данных, в том числе привилегии CREATEIN, ALTERIN, DROPIN - разрешения на создание, изменение, уничтожение объектов в схеме соответственно.

Все остальные виды привилегий являются объектными - они даются по отношению к отдельным объектам базы данных.

Привилегии таблиц и представлений - включают в себя разрешение на действия над определенными таблицами/представлениями, в том числе привилегии:

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

Привилегии индекса - создатель индекса автоматически получает для него привилегию CONTROL, что дает ему разрешение на удаление индекса.

Все названные выше привилегии назначаются операторами GRANT, а забираются операторами REVOKE, обобщенная форма которых показана на рис.6.7.


Рисунок 6.7 - Операторы GRANT и REVOKLE (DB2)

Типы объектов - DATABASE, SCHEMA, TABLE, VIEW и т.д. Набор возможных привилегий зависит от типа объекта. Опция WITH GRANT OPTION означает разрешение на передачу привилегий и возможна только для типов объектов TABLE, VIEW, SCHEMA.

6.4.2 Oracle: системные и объектные привилегии

В Oracle все даваемые пользователю разрешения сводятся к привилегиям. Различаются два вида привилегий - системные привилегии и привилегии объектов схемы или просто объектные. Управление обоими видами привилегий производится схожим образом. Привилегии могут даваться/забираться пользователю или роли.

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

Системные привилегии могут даваться с правом передачи другому пользователю/роли или без него. Они назначаются и забираются операторами GRANT и REVOKE, показанными на рис.6.8.


Рисунок 6.8 - Операторы GRANT и REVOKLE для системных привилегий Oracle

WITH ADMIN OPTION определяет возможность передачи привилегий.

Объектные привилегии концептуально совпадают с таковыми в DB2, они разрешают пользователю выполнять определенные действия над определенным объектом. Основными объектами, для которых даются объектные привилегии являются таблицы и представления, привилегии для них - ALTER, INDEX, INSERT, REFERENCES, SELECT, UPDATE, ALL - как и в DB2. Привилегии могут даваться с правом передачи или без него. Операторы GRANT и REVOKE для объектных привилегий имеют синтаксис, представленный на рис.6.9.


Рисунок 6.9 - Операторы GRANT и REVOKLE для объектных привилегий Oracle

Обратите внимание: в DB2 в операторах GRANT и REVOKE указывался тип объекта, а в Oracle - нет. Это объясняется тем, что в Oracle все объекты схемы должны иметь уникальные имена, а в DB2 имена объектов разного типа могут совпадать.


НазадОглавлениеВперед
КаталогИндекс раздела