W Cat - SQL за 24 часа
• Учетные записи пользователей и установки по умолчанию.
• Привилегии и другая связанная с безопасностью информация.
• Статистика, характеризующая производительность системы.
• Размеры объектов.
• Динамика роста объектов.
• Структура таблиц и параметры их хранения.
• Структура индексов и параметры их хранения.
• Информация о других объектах базы данных, в частности, представлениях, синонимах, триггерах, сохраненных процедурах.
• Ограничения для таблиц и информация о ссылочной целостности данных.
• Пользовательские сеансы доступа.
• Информация об аудитах.
• Внутренние параметры базы данных.
• Размещение файлов базы данных.
Системный каталог управляется сервером базы данных. Например, при создании таблицы сервер базы данных вставляет данные об этом в соответствующую таблицу или представление каталога. При изменении пользователем структуры своей таблицы соответствующие объекты словаря данных тоже обновляются. В следующих разделах систематично описываются типы данных, которые отслеживаются в системном каталоге.
Пользовательские данные
В системном каталоге хранится информация обо всех пользователях базы данных: их привилегиях доступа к системе и объектам, информация о принадлежащих им объектах, а также информация о не принадлежащих им объектах, к которым эти пользователи имеют доступ. Пользовательские таблицы и представления оказываются доступными для извлечения этой информации. По поводу имеющихся в системном каталоге объектов обратитесь к документации, предлагаемой вашей реализацией базы данных.
Информация о безопасности
Системный каталог содержит также информацию о безопасности, в частности, учетные записи пользователей, закодированные пароли, пользовательские привилегии и группы привилегий доступа к данным. В некоторых реализациях предусмотрены таблицы аудита с данными обо всех действиях, предпринятых пользователями в отношении базы данных с указанием времени и инициатора этих действий и другой соответствующей информации. Могут подробно отслеживаться также и пользовательские сеансы доступа к базе данных.
Информация о структуре базы данных
Системный каталог содержит также информацию о структуре самой базы данных. Эта информация может включать дату создания базы данных, имена и размеры ее объектов, размеры и адреса размещения файлов, информацию о ссылочной целостности данных, об имеющихся индексах, столбцах таблиц и их атрибутах.
Статистика производительности системы
В системном каталоге обычно представлена и статистика, характеризующая производительность системы. Такая статистика обычно включает информацию о скорости выполнения операторов SQL и том методе, который был выбран оптимизатором для их выполнения. Другая информация о производительности может содержать параметры использования памяти, доступного базе данных свободного пространства, фрагментации таблиц и индексов. Эта информация может быть использована для оптимизации структуры и работы базы данных, оптимизации операторов SQL и выбора оптимальных способов доступа к данным с целью уменьшения времени, необходимого для выполнения запросов.
Таблицы системного каталога
Разные реализации баз данных предлагают свои таблицы и представления системного каталога, часто разделенные на группы по уровням доступа на пользовательские, системные и предназначенные для администратора базы данных. Конкретную информацию о содержимом таблиц системного каталога можно получить из запросов к этим таблицам и из документации к базе данных. Для некоторых из наиболее распространенных реализаций соответствующая информация представлена в табл. 21.1.
Microsoft SQL Server
Имя таблицы
Описание
SYSUSERS
SYSSEGMENTS
SYSINDEXES
SYSCONSTRAINTS
Информация о пользователях базы данных
Информация обо всех сегментах базы данных
Информация обо всех индексах
Информация обо всех условиях ограничения
dBase
Имя таблицы
Описание
SYSVIEWS
SYSTABLS
SYSIDXS
SYSCOLS
Информация обо всех представлениях
Информация обо всех таблицах
Информация обо всех индексах
Информация о столбцах таблиц
Microsoft Access
Имя таблицы
Описание
MSysColumns
MSyslndexes
MSysMacros
MSysObjects
MSysQueries
MSysRelationships
Информация о столбцах таблиц
Информация об индексах таблиц
Информация о созданных макросах
Информация обо всех объектах базы данных
Информация о созданных запросах
Информация о связях между таблицами
Sybase
Имя таблицы
Описание
SYSMESSAGES
SYSKEYS
SYSTABLES
SYSVIEWS
SYSCOLUMNS
SYSINDEXES
SYSOBJECTS
SYSDATABASES
SYSPROCEDURES
Список всех сообщений об ошибках сервера
Информация о ключах и внешних ключах
Информация обо всех таблицах и представлениях
Тексты всех представлений
Информация о столбцах таблиц
Информация об индексах
Информация о таблицах, триггерах, представлениях и т. п.
Информация обо всех базах данных на сервере
Информация о представлениях, триггерах и сохраненных процедурах
Oracle
Имя таблицы
Описание
ALLJTABLES
USER_TABLES
DBAJTABLES
DBA_SEGMENTS
DBAJNDEXES
DBA_USERS
DBA_ROLE_PRIVS
DBA_ROLES
DBA_SYS_PRIVS
DBA_FREE_SPACE
V$DATABASE
V$SESSION
Информация о таблицах, доступных пользователю
Информация о таблицах, принадлежащих пользователю
Информация обо всех таблицах в базе данных
Информация о сегментах
Информация о всех индексах
Информация о всех пользователях базы данных
Информация о выданных ролях
Информация обо всех ролях в базе данных
Информация о выданных привилегиях доступа к системе
Информация о доступном базе данных свободном пространстве
Информация о создании базы данных
Информация о текущем сеансе доступа
В таблице приведена лишь малая часть объектов системных каталогов некоторых реализаций баз данных. Многие объекты различных реализаций оказываются похожими, но в рамках этого урока мы стремимся показать их разнообразие. В конце концов, каждый из производителей реляционных баз данных реализует свой подход к организации системного каталога.
Использование данных системного каталогаС помощью средств SQL данные таблиц и представлений системного каталога можно извлечь точно так же, как данные других таблиц и представлений базы данных. Обычный пользователь имеет возможность осуществить запрос к своим таблицам, но, как правило, доступ к системным таблицам разрешается только привилегированным пользователям, например, администратору базы данных.
Запрос SQL на выборку данных из системного каталога по форме не отличается от запроса к любой другой таблице базы данных.
Например, следующий запрос возвратит все строки данных таблицы SYSTABLES в Sybase.
SELECT * FROM SYSTABLES
GO
В следующих разделах представлено несколько примеров запросов к таблицам системного каталога и соответствующая информация, которая может оказаться вам полезной.
Примеры запросов к системному каталогу
Следующие примеры иллюстрируют запросы к системному каталогу Oracle. Для выбора Oracle не было никаких особых причин, кроме той, что авторы книги знают реализацию Oracle лучше других реализаций.
Следующий запрос возвращает список всех имен пользователей базы данных.
SELECT USERNAME
FROM ALL_USERS;
USERNAME
------------
SYS
SYSTEM
RYAN
SCOTT
DEMO
RON
USER1
USER2
8 строк выбраны. Следующий запрос возвращает список всех таблиц данного пользователя.
SELECT TABLE_NAME