SYSTEMCATALOG Таблицы (базовые и представления)
SYSTEMCOLUMNS Столбцы таблицы
SYSTEMTABLES Каталог Представления в SYSTEMCATALOG
SYSTEMINDEXES Индексы в таблице
SYSTEMUSERAUTH Пользователи базы данных
SYSTEMTABAUTH Объектные привилегии пользователей
SYSTEMCOLAUTH Столбцовые привилегии пользователей
SYSTEMSYNONS Синонимы для таблиц
Теперь, если наш DBA предоставит пользователю Stephen право просматривать SYSTEMCATALOG такой командой,
GRANT SELECT ON SYSTEMCATALOG TO Stephen;
то Stephen сможет увидеть некоторую информацию обо всех таблицах в базе данных (мы имеем здесь пользователя DBA, пользователя Chris, владельца трех наших типовых таблиц, а также Adrian, владельца представления Londoncust).
SELECT tname, owner, numcolumns, type, CO
FROM SYSTEMCATALOG;
=============== SQL Execution Log ===============
| SELECT tname, owner, numcolumns, type, CO |
| FROM SYSTEMCATALOG; |
| ================================================ |
| tname owner numcolumns type CO |
| ------------- ------- ---------- ---- --- |
| SYSTEMCATALOG SYSTEM 4 B |
| Salespeople Chris 4 B |
| Customers Chris 5 B |
| Londoncust Adrian 5 V Y |
| Orders Chris 5 B |
==================================================
Рисунок 24.1: Содержание таблицы SYSTEMCATALOG
Как вы можете видеть, каждая строка описывает свою таблицу. Первый столбец — имя; второй — имя пользователя который владеет ею; третий — число столбцов которые содержит таблица; и четвертый — код из одного символа, это или B (для базовой таблицы) или V (для представления). Последний столбец имеет пустые (NULL) значения, если его тип не равен V; и этот столбец указывает, определена или нет возможность проверки.
Обратите внимание, что SYSTEMCATALOG (СИСТЕМНЫЙ КАТАЛОГ) представлен как одна из таблиц в вышеуказаном списке. Для простоты, мы исключили остальные каталоги системы из вывода. Таблицы системного каталога обычно показываются в SYSTEMCATALOG.
ИСПОЛЬЗОВАНИЕ ПРЕДСТАВЛЕНИЙ В ТАБЛИЦАХ КАТАЛОГА
Поскольку SYSTEMCATALOG — это таблица, вы можете использовать ее в представлении. Фактически можно считать, что имеется такое представление с именем SYSTEMTABLES.
Это представление SYSTEMCATALOG содержит только те таблицы, которые входят в системный каталог; это обычно таблицы базы данных, типа таблицы Продавцов, которые показаны в SYSTEMCATALOG, но не в SYSTEMTABLES.
Давайте предположим, что только таблицы каталога являются собственностью пользователя SYSTEM. Если вы захотите, вы можете определить другое представление, которое бы специально исключало таблицы каталога из вывода:
Do'stlaringiz bilan baham: |