Программирование >>  Хронологические базы данных 

1 ... 199 200 201 [ 202 ] 203 204 205 ... 348


Ответы к некоторым упражнениям 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 ;



1 ... 199 200 201 [ 202 ] 203 204 205 ... 348

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