| Каталог | Оглавление | Индекс раздела |
Каждая СУБД сохраняет метаданные (данные о данных) - детальную информацию обо всех объектах системы. Примерами таких объектов могут служить таблицы, представления, ограничения целостности, триггеры, правила безопасности и т.д. В разных СУБД применяются даже разные названия для метаданных - системный каталог в 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 | возможность передачи |
| Каталог | Оглавление | Индекс раздела |