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


8 Метаданные базы данных

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

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

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

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

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

Общие метаданные для Oracle и DB2

Название представления Назначение Содержимое
Oracle DB2
ALL_TABLES TABLES таблицы
  • имя таблицы
  • владелец
  • количество строк
ALL_VIEWS VIEWS представления
  • имя представления
  • владелец
  • количество строк
  • текст запроса из оператора CREATE VIEW
ALL_TAB_COLUMNS COLUMNS столбцы всех таблиц и представлений
  • имя таблицы
  • имя столбца
  • тип данных
  • размер и точность
  • признак NOT NULL
  • значение по умолчанию
ALL_ CONSTRAINTS TABCONST табличные ограничения целостности
  • имя ограничения
  • имя таблицы
  • владелец
  • тип ограничения
CHECKS ограничения целостности CHECK
  • имя таблицы
  • владелец
  • текст условия
REFERENCES ссылочные ограничения целостности
  • имя таблицы, на которую ссылается
  • имя ключа
  • правила для удаления и изменения
ALL_TRIGGERS TRIGGERS триггеры
  • имя триггера
  • имя таблицы
  • владелец
  • время активизации
  • область действия
  • условие активизации
  • текст тела триггера

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

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

Название представления Назначение Содержимое
DBA_USERS пользователи
  • имя пользователя
  • внутренний код
  • дата создания
  • пароль
DBA_ROLES роли
  • имя роли
  • пароль
SYSTEM_PRIVILEGE_MAP системные привилегии
  • код привилегии
  • название
TABLE_PRIVILEGE_MAP табличные привилегии
  • код привилегии
  • название
ROLE_SYS_PRIVS системные привилегии ролей
  • имя роли
  • код привилегии
  • возможность передачи
ROLE_SYS_PRIVS табличные привилегии ролей
  • имя роли
  • владелец таблицы
  • таблица
  • столбец
  • код привилегии
  • возможность передачи
ROLE_ROLE_PRIVS роли, приданные ролям
  • имя роли
  • имя приданной роли
  • возможность передачи
DBA_ROLE_PRIVS назначение ролей пользователям или другим ролям
  • имя пользователя или роли
  • назначенная роль
  • возможность передачи
DBA_SYS_PRIVS назначение системных привилегий пользователям или ролям
  • имя пользователя или роли
  • привилегия
  • возможность передачи
DBA_TAB_PRIVS назначение табличных привилегий пользователям или ролям
  • имя пользователя или роли
  • владелец таблицы
  • имя пользователя, который дал привилегию
  • таблица
  • столбец
  • привилегия
  • возможность передачи
ALL_TAB_PRIVS привилегии для таблиц, предоставляемые другим пользователям или PUBLIC
  • имя пользователя или роли
  • владелец таблицы
  • имя пользователя, который дал привилегию
  • таблица
  • столбец
  • привилегия
  • возможность передачи

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

Название представления Назначение Содержимое
DBAUTH привилегии базы данных
  • кто дал привилегию
  • кому дана привилегия
  • пользователь/группа
  • название привилегии
SCHEMAAUTH привилегии схемы
  • имя схемы
  • кто дал привилегию
  • кому дана привилегия
  • пользователь/группа
  • название привилегии
TABAUTH привилегий таблиц и представлений
  • имя схемы
  • имя таблицы
  • кто дал привилегию
  • кому дана привилегия
  • пользователь/группа
  • название привилегии
COLAUTH привилегии для столбцов таблиц и представлений
  • имя схемы
  • имя таблицы
  • имя столбца
  • кто дал привилегию
  • кому дана привилегия
  • пользователь/группа
  • название привилегии
  • возможность передачи

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