SYSTEMTABAUTH — привилегии объекта которые не определяют столбцы

Здесь показаны имена столбцов в таблице SYSTEMTABAUTH и их описание:

COLUMN
ОПИСАНИЕ

username
ПОЛЬЗОВАТЕЛЬ, который имеет привилегии

grantor
ПОЛЬЗОВАТЕЛЬ, который передает привилегии по имени пользователя

tname
Имя таблицы в которой существуют привилегии

owner
Владелец tname

selauth
Имеет ли ПОЛЬЗОВАТЕЛЬ привилегию SELECT

insauth
Имеет ли ПОЛЬЗОВАТЕЛЬ привилегию INSERT

delauth
Имеет ли ПОЛЬЗОВАТЕЛЬ привилегию DELETE

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

SQL Execution Log

SELECT username, dba FROM SYSTEMUSERAUTH WHERE resource = ‘Y’ ;

username
dba

Diane
N

Adrian
Y

Рисунок 24 .5: Пользователи, которые имеют привилегию RESOURCE
Первые четыре столбца этой таблицы составляют первичный ключ. Это означает, что каждая комбинация из tname, владелец-ПОЛЬЗОВАТЕЛЬ ( не забудьте, что две различные таблицы с различными владельцами могут иметь одно и тоже им ), ПОЛЬЗОВАТЕЛЬ и ПОЛЬЗОВАТЕЛЬ передающий права( гарантор ), должна быть уникальной. Каждая строка этой таблицы содержит все привилегии ( которые не являются определенным столбцом ), предоставляются одним определенным пользователем другому определенному пользователю в конкретном объекте. UPDATE и REFERENCES, являются привилегиями, которые могут быть определенными столбцами, и находиться в различных таблицах каталога. Если ПОЛЬЗОВАТЕЛЬ поляучает привилегии в таблице от более чем одного пользователя, такие привилегии могут быть отдельными строками созданными в этой таблице. Это необходимо для каскадного отслеживания при вызове привилегий.
ТИПОВОЙ ЗАПРОС Чтобы найти все привилегии SELECT, INSERT, и DELETE, которые Adrian предоставляет пользователям в таблице Заказчиков, вы можете ввести следующее ( вывод показан в Рисунке 24.6 ):
SELECT username, selauth, insauth, delauth FROM SYSTEMTABAUTH WHERE grantor = ‘ Adrian ‘ ANDtname = ‘Customers’;

SQL Execution Log

SELECT username, selauth, insauth, delauth
FROM SYSTEMTABAUTH
WHERE grantor = ‘ Adrian ‘
AND tname = ‘Customers’ ;

username
selauth
insauth
delauth

Claire

G

Y

N

Norman

Y

Y

Y

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

 
 
 

‹ SYSTEMUSERAUTH — пользовательские и системные привилегии в базе данных
Вверх
SYSTEMCOLAUTH ›

Добавить комментарий

Adblock
detector