Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы данных / БД2012 / Understanding.SQL.doc
Скачиваний:
281
Добавлен:
28.03.2015
Размер:
1.75 Mб
Скачать

Systemcolauth

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

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

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

grantor Пользователь который предоставляет привилегии другому пользователю

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

cname Им столбца в котором существуют привилегии

owner Владелец tname

updauth Имеет ли пользователь привилегию UPDATE в этом столбце

refauth Имеет ли пользователь привилегию REFERENCES в этом столбце

Столбцы updauth и refauth могут быть в состоянии Y, N, или G; но не могут быть одновременно в состоянии N для одной и той же строки. Это - первые пять столбцов таблицы, которые не составляют первичный ключ. Он отличается от первичного ключа SYSTEMTABAUTH в котором содержится поле cname, указывающее на определенный столбец обсуждаемой таблицы для которой применяются одна или обе привилегии. Отдельна строка в этой таблице может существовать для каждого столбца в любой данной таблицы в которой одному пользователю передаются привилегии определенного столбца с помощью другого пользователя. Как и в случае с SYSTEMTABAUTH та же привилегия может быть описана в более чем одной строке этой таблицы если она была передана более чем од- ним пользователем. ТИПОВОЙ ЗАПРОС Чтобы выяснить, в каких столбцах какой таблицы вы имеете привилегию REFERENCES, вы можете ввести следующий запрос ( вывод показывается в Рисунке 24.7 )

SELECT owner, tname, cname

FROM SYSTEMCOLAUTH

WHERE refauth IN ('Y', 'G')

AND username = USER

ORDER BY 1, 2;

который показывает, что эти две таблицы, которые имеют различных владельцев, но одинаковые им, в действительности, совершенно разные таблицы ( т.е. это не как два синонима для одной таблицы ).

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

| |

| SELECT OWNER, TNAME, CNAME |

| FROM SYSTEMCOLAUTH |

| WHERE refaulth IN ('Y' , 'G' ) |

| AND username = USER |

| ORDER BY 1, 2 |

| ; |

| ================================================= |

| owner tname cname |

| ----------- ----------- ------- |

| Diane Customers cnum |

| Diane Salespeople sname |

| Diane Salespeople sname |

| Gillan Customers cnum |

===================================================

Рисунок 24. 7: Столбцы в пользователь имеет привилегию INSERT

Systemsynons - синонимы для таблиц в базе данных

Это - имена столбцов в таблице SYSTEMSYNONS и их описание:

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

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

synonym Имя синонима

synowner Пользователь, который является владельцем

синонима ( может быть PUBLIC (ОБЩИЙ))

tname Им таблицы используемой владельцем

tabowner Им пользователя который является владельцем таблицы

ТИПОВОЙ ЗАПРОС Предположим, что Adrian имеет синоним Clients для таблицы Заказчиков принадлежащей Diane, и что имеется общий синоним Customers для этой же таблицы. Вы делаете запрос таблицы для всех синонимов в таблице Заказчиков ( вывод показывается в Рисунке 24.8 ):

SELECT *

FROM SYSTEMSYNONS

WHERE tname = 'Customers'

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

| |

| SELECT * |

| FROM SYSTEMSYNONS |

| WHERE tname = 'Customers' |

| ; |

| ================================================= |

| synonym synowner tname tabowner |

| ----------- ----------- ---------- ---------- |

| Clients Adrian Customers Diane |

| Customers PUBLIC Customers Diane |

| |

===================================================

Рисунок 24.8: Синонимы для таблицы Заказчиков

Соседние файлы в папке БД2012