|
Программирование >> Хронологические базы данных
Ответы к некоторым упражнениям 16.1. а) AUTHORITY AAA GRANT RETRIEVE ON STATS TO Ford ; б) AUTHORITY BBB GRANT INSERT, DELETE ON STATS TO Smith ; b) AUTHORITY CCC GRANT RETRIEVE ON STATS WHEN USER () = NAME TO ALL ; Здесь предполагается, что в качестве идентификаторов пользователей в системе применяются их имена. Обратите внимание на использование предложения WHEN и встроенной функции USER(). г) AUTHORITY DDD GRANT RETRIEVE, UPDATE ( SALARY, TAX ) ON STATS TO Nash ; Д) AUTHORITY EEE GRANT RETRIEVE ( USERID, SALARY, TAX ) ON STATS TO Todd ; е) AUTHORITY FFF GRANT RETRIEVE ( USERID, SALARY, TAX ), UPDATE ( SALARY, TAX ) ON STATS TO Ward ; ж) VAR PREACHERS VIEW STATS WHERE OCCUPATION = Preacher ; AUTHORITY GGG GRANT ALL ON PREACHERS TO Pope ; Обратите внимание на необходимость использования представления в данном случае. з) VAR NONSPECIALIST VIEW WITH ( STATS RENAME OCCUPATION AS X ) AS Tl, ( EXTEND STATS ADD COUNT ( Tl WHERE X = OCCUPATION ) AS Y ) AS T2, ( T2 WHERE Y > 10 ) AS T3 : T3 { ALL BUT Y } AUTHORITY HHH GRANT DELETE ON NONSPECIALIST TO Jones ; и) VAR JOBMAXMIN VIEW WITH ( STATS RENAME OCCUPATION AS X ) AS Tl, ( EXTEND STATS ADD MAX ( Tl WHERE X = OCCUPATION, SALARY ) AS MAXSAL, MIN ( Tl WHERE X = OCCUPATION, SALARY ) AS MINSAL ) AS T2 : T2 { OCCUPATION, MAXSAL, MINSAL } AUTHORITY III GRANT RETRIEVE ON JOBMAXMIN TO King ; 16.2. Здесь необходимо отметить, что пользователя, который обладает привилегией создания новой базовой переменной-отношения и действительно создает такую переменную-отношение, следует рассматривать как владельца этого нового объекта. В языке SQL владелец некоторой базовой переменной-отношения автоматически наделяется всеми возможными привилегиями по отношению к нему, включая не только операции RETRIEVE, INSERT, UPDATE и DELETE, но и право передачи своих полномочий для данного отношения другим пользователям. 16.3. Индивидуальный трекер для домохозяйки с именем Hal будет иметь следующий вид. CHILDREN > 1 AND NOT ( OCCUPATION = Homemaker ) Рассмотрим приведенную ниже последовательность запросов. COUNT ( STATS WHERE CHILDREN > 1 ) Результат: 6. COUNT ( STATS WHERE CHILDREN > 1 AND NOT ( OCCUPATION = Homemaker ) Результат: 5. Следовательно, выражение CHILDREN > 1 AND OCCUPATION = Homemaker единственным образом идентифицирует домохозяйку с именем Hal. SUM ( STATS WHERE CHILDREN > 1, TAX ) Результат: 48 ООО. SUM ( STATS WHERE CHILDREN > 1 AND NOT ( OCCUPATION = Homemaker ), TAX ) Результат: 46 ООО. Отсюда следует, что размер налогов для домохозяйки с именем Hal равен 2 ООО. 16.4. Общий трекер в этом случае будет иметь следующий вид: SEX = F. SUM ( STATS WHERE SEX = F, TAX ) Результат: 70 ООО. SUM ( STATS WHERE NOT ( SEX = F ), TAX ) Результат: 16 000. Следовательно, общий размер налогов составляет 86 ООО. SUM ( STATS WHERE ( CHILDREN > 1 AND OCCUPATION = Homemaker ) OR SEX = F, TAX ) Результат: 72 ООО. SUM ( STATS WHERE ( CHILDREN > 1 AND OCCUPATION = Homemaker ) OR NOT ( SEX = F ), TAX ) Результат: 16 000. Сложив два последних результата (88 ООО) и вычтя из них полученное выще общее значение налогов (86 ООО), имеем, что размер налогов для домохозяйки Halравен 2 ООО. 16.5. Открытый текст имеет следующий вид. 1. EYES I DARE NOT MEET IN DREAMS Какой был использован ключ шифрования? 16.7. Одна из проблем заключается в том, что данные внутри системы, в которой выполняется шифрование, должны обрабатываться в открытом виде (например, чтобы корректно выполнялись операции сравнения). Поэтому все еще существует риск прямого доступа к очень важным данным с помощью параллельно работающих приложений или выявления содержания этих данных в распечатке состояния памяти, выведенной на внешний носитель. Кроме того, существует несколько технических проблем, связанных с индексированием зашифрованных данных и ведением для таких данных файла протокола. а) GRANT SELECT ON STATS TO Ford ; б) GRANT INSERT, DELETE ON STATS TO Smith ; в) CREATE VIEW MINE AS SELECT STATS.* FROM STATS WHERE STATS.NAME = CURRENT USER ; GRANT SELECT ON MINE TO PUBLIC ; Здесь предполагается, что в качестве идентификаторов пользователей применяются их имена. Обратите внимание на использование встроенного оператора CURRENT USER(). г) GRANT SELECT, UPDATE ( SALARY, TAX ) ON STATS TO Nash ; Д) CREATE VIEW UST AS SELECT STATS.NAME, STATS.SALARY, STATS.TAX FROM STATS ; GRANT SELECT ON UST TO Todd ;
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |