Читаем SQL за 24 часа полностью

Следующий запрос возвращает список всех имен пользователей базы данных.

SELECT USERNAME

FROM ALL_USERS;

USERNAME

------------

SYS

SYSTEM

RYAN

SCOTT

DEMO

RON

USER1

USER2

8 строк выбраны. Следующий запрос возвращает список всех таблиц данного пользователя.

SELECT TABLE_NAME

FROM USER_TABLES;

TABLE_NAME

-----------

CANDY_TBL

CUSTOMER_TBL

EMPLOYEE_PAY_TBL

EMPLOYEE_TBL

PRODUCTS_TBL

ORDERS_TBL

6 строк выбраны.

Следующий запрос возвращает список всех привилегий доступа к системе, имеющихся у пользователя с именем BRANDON.

SELECT GRANTEE, PRIVILEGE

FROM SYS.DBA_SYS_PRIVS

WHERE GRANTEE = 'BRANDON';

GRANTEE PRIVILEGE

-------------------------

BRANDON ALTER ANY TABLE

BRANDON ALTER USER

BRANDON CREATE USER

BRANDON DROP ANY TABLE

BRANDON SELECT ANY TABLE

BRANDON UNLIMITED TABLESPACE

6 строк выбраны.

А вот пример из MS Access:


SELECT NAME

FROM MSYSOBJECTS

WHERE NAME = 'MSYSOBJECTS'

NAME

------------

MSYSOBJECTS

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


Обновление содержимого системного каталога

Системный каталог позволяет только выборку его данных - даже когда его использует администратор базы данных. Обновление системного каталога осуществляется автоматически сервером базы данных. Например, в базе данных пользователем создается таблица с помощью оператора CREATE TABLE. При этом сервер базы данных помещает соответствующий оператор DDL в определенную таблицу системного каталога. Необходимости обновлять таблицы системного каталога вручную не возникает никогда. Во всех реализациях эту работу выполняет сервер базы данных по схеме, показанной на рис. 21.2

Никогда не пытайтесь изменять таблицы системного каталога вручную. Это может привести к нарушению целостности данных Помните о том, что в системном каталоге хранится информация о структуре базы данных и ее объектах Как правило, системный каталог хранится отдельно от других данных в базе данных.

Рис. 21.2. Обновление системного каталога


Резюме

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


Вопросы и ответы

Как пользователь базы данных я имею возможность получить информацию о своих объектах. Но как получить информацию об объектах других пользователей?

Есть целый ряд таблиц и представлений системного каталога, доступ к которым может получить любой пользователь базы данных. Среди таких таблиц и представлений обязательно найдутся такие, в которых содержится информация о тех объектах, к которым доступ вам разрешен.

Если пользователь забыл свой пароль, может ли администратор базы данных извлечь пароль пользователя из какой-нибудь таблицы системного каталога?

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

Как выяснить, из каких столбцов состоит некоторая таблица системного каталога?

К таблицам системного каталога можно адресовать запросы точно так же, как к любым другим таблицам базы данных. Просто выполните запрос к соответствующей таблице системного каталога.


Практикум

Перейти на страницу:

Похожие книги

Adobe InDesign CS3
Adobe InDesign CS3

Книга посвящена верстке и макетированию в программе Adobe InDesign CS3. Помимо того что в ней описываются возможности программы, рассматриваются также принципы и традиции верстки, приводятся примеры решения типичных задач. Все это позволит читателю не только овладеть богатым инструментарием программы, но и грамотно применять его.Материал книги разделен на логические части: теоретические сведения, инструментарий программы, решение задач, – а также рассчитан на два уровня подготовки читателей – начинающих и опытных пользователей, что выгодно отличает книгу от других изданий. Это позволит применять ее как новичкам для знакомства с программой, так и пользователям со стажем для пополнения своих знаний.

Владимир Гавриилович Завгородний , Владимир Завгородний

Программирование, программы, базы данных / Программное обеспечение / Книги по IT