Классика баз данных - статьи

       

в операторе GRANT может использоваться


Вместо списка привилегий в операторе GRANT может использоваться фраза ALL RIGHTS. Если список привилегий не указывается, по умолчанию передается привилегия READ.

После того как некоторая привилегия передана, ее можно изъять с помощью команды REVOKE. Указываемые привилегии отбираются у того, кому они были переданы, и у всех пользователей, которым он их, в свою очередь, передал, если у обладателя привилегий не имеется другого, независимого источника отбираемых привилегий. Изъятие привилегии может также иметь и другие последствия. Например, если у пользователя отбирается привилегия READ на отношение EMP, то должны быть уничтожены все представления, определенные на EMP этим пользователем. Эти вопросы более подробно рассматриваются в [12].

С2. Лишить Андерсона возможности модифицировать таблицу EMP.

REVOKE UPDATE ON EMP FROM ANDERSON

В языке SEQUEL пользователю, облдающему привилегией CONTROL на некоторой таблице, определять утверждения (assertion) целостности относительно данных этой таблицы. Утверждение целостности – это предикат, который может иметь значения TRUE или FALSE. Когда выполняется оператор ASSERT, система проверяет текущее значение истинности предиката. Если в данный момент оно равно FALSE, условие отвергается. Если – TRUE, то система с этого момента производит проверку истинности этого утверждения при всех дальнейших модификациях базы данных. Пользователь, определяющий утверждение целостности, задает его имя. Если оператор вставки, удаления или модификации нарушает некоторое утверждение целостности, этот оператор отвергается, и возвращается код нарушения вместе с именем нарушенного условия.

Простейший тип утверждений целостности относится к конкретному отношению (идентифицируемому фразой вида ON EMP), и такие утверждения должны применяться к каждому кортежу отношения.

С3. Задать утверждение, что зарплата всех служащих меньше 50000.

ASSERT A1 ON EMP: SAL < 50000 С4. Задать утверждение, что все клерки получают зарплату между 8000 и 15000.


Содержание  Назад  Вперед