В следующих упражнениях используется базовая таблица СТАТУС, определенная следующим образом
CREATE TABLE СТАТУС
(ИД_ПОЛЬЗОВАТЕЛЯ CHAR(8),
ПОЛ CHAR(1),
ЧИСЛО_ИЖДИВЕНЦЕВ DECIMAL(2),
ПРОФЕССИЯ CHAR(20),
ЗАРПЛАТА DECIMAL(7),
НАЛОГ DECIMAL(7),
КОНТРОЛЬНЫЙ_КОД DECIMAL(2));
9.1. Запишите предложения SQL, которые представляют:
а) привилегию SELECT на всю таблицу пользователю Форду;
б) привилегию INSERT и DELETE на всю таблицу пользователю Смиту;
в) привилегию SELECT каждому пользователю только на собственную запись этого пользователя;
г) привилегию SELECT на всю таблицу и привилегию UPDATE только на поля ЗАРПЛАТА и НАЛОГ пользователю Нашу;
д) привилегию SELECT только на поля ИД_ПОЛЬЗОВАТЕЛЯ, ЗАРПЛАТА и НАЛОГ пользователю Тодду;
е) привилегию SELECT, как для Тодда, и привилегию UPDATE только на поля ЗАРПЛАТА и НАЛОГ пользователю Уорду;
ж) полные привилегии (SELECT, UPDATE, INSERT, DELETE) только на записи проповедников пользователю Попу;
з) привилегию SELECT, как для Тодда, и привилегию UPDATE только на поля НАЛОГ и КОНТРОЛЬНЫЙ_КОД пользователю Джоунзу;
|
|
и) привилегию SELECT на максимальную и минимальную зарплату по классам профессий, но никаких других привилегий, пользователю Кингу;
к) привилегию DROP на данную таблицу пользователю Кларку.
9.2. Для каждого из упражнений 9.1 а)—к) запишите предложения языка SQL, которые отменяют указанные привилегии для заданных пользователей.
9.3. Пусть р предоставляет некоторую привилегию, a Ul, U2,..., U8—множество идентификаторов санкционирования. Пусть также Ul и U5 первоначально являются единственными обладателями привилегии р. Предположим далее, что Ul и U5 обладают возможностью GRANT для р. Рассмотрим следующую последовательность событий, предполагая, что все перечисленные предложения GRANT включают спецификацию WITH GRANT OPTION:
Пользователь U1 в момент t1: GRANT р ТО U2
Пользователь U1 в момент t2: GRANT р ТО U3
Пользователь U1 в момент t3: GRANT р ТО U4
Пользователь U2 в момент t4: GRANT р ТО U6
Пользователь U5 в момент t5: GRANT р ТО U2
Пользователь U5 в момент t6: GRANT р ТО U3
Пользователь U5 в момент t7: GRANT р ТО U6
Пользователь U4 в момент t8: GRANT p TO U7
Пользователь U1 в момент t9: REVOKE p FROM U2
Пользователь U1 в момент t10: REVOKE p FROM U4
Пользователь U3 в момент t11: GRANT p TO U1
Пользователь U1 в момент t12: REVOKE p FROM U3
Пользователь U3 в момент t13: GRANT p TO U7
Пользователь U5 в момент t14: REVOKE p FROM U6
Пользователь U1 в момент t15: GRANT p TO U5
Пользователь U5 в момент t16: GRANT p TO U8
Пользователь U8 в момент t17: GRANT p TO U5
Пользователь U1 в момент t18: GRANT p TO U8
Пользователь U5 в момент t19: REVOKE p FROM U8
Пользователь U1 в момент t20: GRANT p TO U3
Кто в конце этой последовательности все еще обладает привилегией р?