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


Справка. Системный каталог и словарь данных.

Каждая СУБД сохраняет метаданные (данные о данных) - детальную информацию обо всех объектах системы. Примерами таких объектов могут служить таблицы, представления, ограничения целостности, триггеры, правила безопасности и т.д. В разных СУБД применяются даже разные названия для метаданных - системный каталог в DB2 или словарь данных (Oracle). Однако общим свойством всех современных реляционных СУБД является то, что каталог/словарь сам состоит из таблиц. В результате пользователь может обращаться к метаданным так же, как и к своим данным - используя оператор SQL SELECT. Изменения же в каталоге/словаре производятся автоматически при выполнении пользователем операторов SQL, изменяющих состояние объектов базы данных.

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

Состав и структура каталога/словаря очень различна для различных СУБД.

В Oracle представления словаря данных в большинстве своем доступны любому пользователю с привилегией CREATE SESSION. Существуют три группы представлений системного каталога:

В DB2 представления системного каталога определены в схеме SYSCAT и привилегия выборки из них предоставлена группе PUBLIC.

Несмотря на различия, мы попытались свести некоторые общие свойства представлений метаданных в представленную ниже таблицу. В ней показаны далеко не все представления метаданных и далеко не все столбцы этих представлений. Для Oracle мы ограничились только представлениями группы ALL_. Для DB2 мы опускаем имя схемы - SYSCAT.

Полная информация содержится:

Название представления Назначение представления Название столбца Назначение столбца
Oracle DB2 Oracle DB2
ALL_TABLES TABLES таблицы TABLE_NAME TABNAME имя таблицы
OWNER DEFINER владелец таблицы
NUM_ROWS CARD количество строк в таблице
ALL_VIEWS VIEWS представления VIEW_NAME VIEWNAME имя таблицы
OWNER DEFINER владелец
TEXT TEXT текст запроса из оператора CREATE VIEW
- VIEWCHECK признак WITH CHECK OPTION
ALL_TAB_COLUMNS COLUMNS столбцы всех таблиц и представлений TABLE_NAME TABNAME имя таблицы
COLUMN_NAME COLNAME имя столбца
DATA_TYPE TYPENAME тип данных
DATA_LENGTH LENGTH длина данных
DATA_PRECISION используется LENGTH точность
DATA_SCALE SCALE число знаков после точки
DATA_DEFAULT DEFAULT значение по умолчанию
NULLABLE NULLS признак допустимости пустого значения
ALL_CONSTRAINTS TABCONST табличные ограничения целостности CONSTRAINT_NAME CONSTNAME имя ограничения
TABLE_NAME TABNAME имя таблицы
OWNER DEFINER владелец
CONSTRAINT_TYPE TYPE тип ограничения
CHECKS ограничения целостности CHECK   TABNAME имя таблицы
DEFINER владелец
SEARCH_CONDITION TEXT текст условия
REFERENCES ссылочные ограничения целостности   TABNAME имя таблицы
DEFINER владелец
REFTABNAME имя таблицы, на которую выполнена ссылка
R_CONSTRAINT_NAME REFKEYNAME имя ключа таблицы, на который выполнена ссылка
DELETE_RULE DELETERULE правила для удаления
- UPDATERULE правила для изменения
ALL_TRIGGERS TRIGGERS триггеры TRIGGER_NAME TRIGNAME имя триггера
OWNER DEFINER владелец
TABLE_NAME TABNAME имя таблицы
TRIGGER_TYPE TRIGTIME время активизации
GRANULARITY область действия
TRIGGERING_EVENT TRIGEVENT условие активизации
DESCRIPTION TEXT текст оператора CREATE TRIGGER

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

Метаданные управления доступом - словарь данных Oracle

Название представления Назначение представления Название столбца Назначение столбца
ALL_USERS пользователи USERNAME имя пользователя
USER_ID внутренний код пользователя
CREATED дата создания
DBA_USERS пользователи USERNAME имя пользователя
USER_ID внутренний код пользователя
CREATED дата создания
PASSWORD пароль
SYSTEM_PRIVILEGE_MAP список системных привилегий PRIVILEGE код привилегии
NAME название привилегии
TABLE_PRIVILEGE_MAP список табличных привилегий PRIVILEGE код привилегии
NAME код привилегии
DBA_ROLES роли ROLE имя роли
PASSWORD_REQUIRED пароль
ROLE_SYS_PRIVS системные привилегии ролей ROLE имя роли
PRIVILEGE привилегия
ADMIN_OPTION возможность передачи
ROLE_SYS_PRIVS табличные привилегии ролей ROLE имя роли
OWNER владелец таблицы
TABLE_NAME имя таблицы
COLUMN_NAME имя столбца
PRIVILEGE привилегия
GRANTABLE возможность передачи
ROLE_ROLE_PRIVS роли, приданные ролям ROLE имя роли
GRANTED_ROLE имя приданной роли
ADMIN_OPTION возможность передачи
DBA_ROLE_PRIVS назначение ролей пользователям или другим ролям GRANTEE имя пользователь или роли
GRANTED_ROLE назначенная роль
ADMIN_OPTION возможность передачи
DBA_SYS_PRIVS назначение системных привилегий пользователям или ролям GRANTEE имя пользователь или роли
PRIVILEGE привилегия
ADMIN_OPTION возможность передачи
DBA_TAB_PRIVS назначение табличных привилегий пользователям или ролям GRANTEE имя пользователь или роли
OWNER владелец таблицы
TABLE_NAME имя таблицы
GRANTOR имя пользователя, который дал привилегию
PRIVILEGE привилегия
GRANTABLE возможность передачи
ALL_TAB_PRIVS привилегии для таблиц, предоставляемые другим пользователям или PUBLIC GRANTEE имя пользователь или роли
OWNER владелец таблицы
TABLE_NAME имя таблицы
GRANTOR имя пользователя, который дал привилегию
PRIVILEGE привилегия
GRANTABLE возможность передачи

Метаданные управления доступом - системный каталог DB2

Название представления Назначение представления Название столбца Назначение столбца
DBAUTH назначения привилегий базы данных GRANTOR кто дал привилегию
GRANTEE кому дана привилегия
GRANTEETYPE пользователю/группе
CREATETABAUTH привилегия CREATETAB
BINDADDAUTH привилегия BINDADD
CONNECTAUTH привилегия CONNECT
SCHEMAAUTH назначения привилегий схемы GRANTOR кто дал привилегию
GRANTEE кому дана привилегия
GRANTEETYPE пользователю/группе
SCHEMANAME имя схемы
ALTERINAUTH привилегия ALTERIN
CREATINAUTH привилегия CREATIN
DROPINAUTH привилегия DROPIN
TABAUTH назначения привилегий таблиц и представлений GRANTOR кто дал привилегию
GRANTEE кому дана привилегия
GRANTEETYPE пользователю/группе
TABSCHEMA имя схемы
TABNAME имя таблицы
CONTROLAUTH привилегия CONTROL
ALTERAUTH привилегия ALTER
DELETEAUTH привилегия DELETE
INSERTAUTH привилегия INSERT
UPDATEAUTH привилегия UPDATE
SELECTAUTH привилегия SELECT
REFAUTH привилегия REFERENCE
INDEXAUTH привилегия INDEX
COLAUTH назначения привилегий для столбцов таблиц и представлений GRANTOR кто дал привилегию
GRANTEE кому дана привилегия
GRANTEETYPE пользователю/группе
TABSCHEMA имя схемы
TABNAME имя таблицы
COLNAME имя столбца
PRIVTYPE привилегия: UPDATE/REFERENCE
GRANTABLE возможность передачи


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