Программирование >>  Понятие sql 

1 ... 67 68 69 [ 70 ] 71 72 73 ... 95


=============== SQL Execution Log ===============

SELECT cnumber, datatype, cname, remarks

FROM SYSTEMCOLUMNS

WHERE tname = Orders

AND tabowner = Chris

AND cname = onum

cnumber datatype cname remarks

1 integer onum Orders #

Рисунок 24.3: Коментарий в SYSTEMCOLUMNS

ОСТАЛЬНОЕ ИЗ КАТАЛОГА

Здесь показаны оставшиеся из ваших системных таблиц определения, стипо-вым запросом для каждого:

SYSTEMINDEXES - ИНДЕКСАЦИЯ В БАЗЕ ДАННЫХ

Имена столбцов в таблице SYSTEMINDEXES и их описания - следующие: СТОЛБЦЫ ОПИСАНИЕ

iname Имя индекса (используемого для его исключения)

iowner Имя пользователя который создал индекс

tname Имя таблицы которая содержит индекс

cnumber Номер столбца в таблице

tabowner Пользователь который владеет таблицей содержащей индекс numcolumns Число столбцов в индексе

cposition Позиция текущего столбца среди набора индексов isunique Уникален ли индекс (Y или N)

ТИПОВОЙ ЗАПРОС Индекс считается неуникальным, если он вызывает продавца, в snum столбце таблицы Заказчиков:

SELECT iname, iowner, tname, cnumber, isunique

FROM SYSTEMINDEXES

WHERE iname = salesperson;

Вывод для этого запроса показывается в Рисунке 24.4.

=============== SQL Execution Log ================

SELECT iname, iowner, tname, cnumber, isunique FROM SYSTEMINDEXES

WHERE iname = salespeople

iname iowner tname cnumber isunique

salesperson Stephan Customers 5 N

Рисунок 24.4: Строка из таблицы SYSTEMINDEXES



SYSTEMUSERAUTH - ПОЛЬЗОВАТЕЛЬСКИЕ И СИСТЕМНЫЕ ПРИВИЛЕГИИ В БАЗЕ ДАННЫХ

Имена столбцов для SYSTEMUSERAUTH и их описание, следующее:

СТОЛБЦЫ ОПИСАНИЕ

username Идентификатор (ID) доступа пользователя password Пароль пользователя вводимый при регистрации resource Где пользователь имеет права RESOURCE dba Где пользователь имеет права DBA

Мы будем использовать простую схему системных привилегий, которая представлена в Главе 22, где были представлены три системных привилегии - CONNECT (ПОДКЛЮЧИТЬ), RESOURCE (РЕСУРСА!) и DBA.

Все пользователи получают CONNECT по умолчанию при регистрации, поэтому он не описан в таблице выше. Возможные состояния столбцов resource и dba могут быть - Y (Да, пользователь имеет привилегии) или - No (Нет, пользователь не имеет привилегий).

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

ТИПОВОЙ ЗАПРОС Чтобы найти всех пользователей, которые имеют привилегию RESOURCE, и увидеть какие из них - DBA, вы можете ввести следующее условие:

SELECT username, dba

FROM SYSTEMUSERAUTH

WHERE resource = Y;

Вывод для этого запроса показывается в Рисунке 24.5.

SYSTEMTABAUTH - ПРИВИЛЕГИИ ОБЪЕКТА, КОТОРЫЕ НЕ ОПРЕДЕЛЯЮТ

СТОЛБЦЫ

Здесь показаны имена столбцов в таблице SYSTEMTABAUTH и их описание: COLUMN ОПИСАНИЕ

username Пользователь, который имеет привилегии

grantor Пользователь, который передает привилегии по имени пользователя tname Имя таблицы, в которой существуют привилегии owner Владелец tname

selauth Имеет ли пользователь привилегию SELECT insauth Имеет ли пользователь привилегию INSERT delauth Имеет ли пользователь привилегию DELETE

Возможные значения для каждой из перечисленных привилегий объекта (имена столбцов которых окончиваются на auth) - Y, N, и G. G указывает, что пользователь имеет привилегию с возможностью передачи привилегий. В каждой строке, по крайней мере один из этих столбцов должен иметь состояние отличное от N(другими словами, иметь хоть какую-то привилегию).



SELECT username, dba

FROM SYSTEMUSERAUTH

WHERE resource = Y

SQL Execution Log

Diane Adrian

username

Рисунок 24.5: Пользователи которые имеют привилегию RESOURCE

Первые четыре столбца этой таблицы составляют первичный ключ. Это означает что каждая комбинация из tname, владелец-пользователь (не забудьте, что две различные таблицы с различными владельцами могут иметь одно и тоже имя), пользователь и пользователь передающий права (гарантор), должна быть уникальной. Каждая строка этой таблицы содержит все привилегии (которые не являются определенным столбцом), предоставляются одним определенным пользователем другому определенному пользователю в конкретном объекте.

UPDATE и REFERENCES являются привилегиями, которые могут быть определенными столбцами, и находиться в различных таблицах каталога. Если пользователь получает привилегии в таблице от более чем одного пользователя, такие привилегии могут быть отдельными строками, созданными в этой таблице. Это необходимо для каскадного отслеживания при вызове привилегий.

ТИПОВОЙ ЗАПРОС Чтобы найти все привелегии SELECT, INSERT и DELETE, которые Adrian предоставляет пользователям в таблице Заказчиков, вы можете ввести следующее (вывод показан в Рисунке 24.6):

SELECT username, selauth, insauth, delauth

FROM SYSTEMTABAUTH

WHERE grantor = Adrian AND tname = Customers;

SQL Execution Log

SELECT username, selauth, insauth, delauth

FROM SYSTEMTABAUTH

WHERE grantor = Adrian

AND tname = Customers

Claire

Norman

username

selauth insauth delauth

Рисунок 24.6: Пользователи получившие привилегии от Adrian

Выше показано, что Adrian предоставил Claire привилегии INSERT и SELECT в таблице Заказчиков, позднее предоставив ей права на передачу привилегий. Пользователю Norman он предоставил привелегии SELECT, INSERT и DELETE, но не дал возможность передачи привилегий ни в одной из них. Если Claire имела привилегию DELETE в таблице Заказчиков от какого-то другого источника, в этом запросе это показано не будет.

SYSTEMCOLAUTH



1 ... 67 68 69 [ 70 ] 71 72 73 ... 95

© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика