Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы данных.doc
Скачиваний:
160
Добавлен:
16.03.2016
Размер:
6 Мб
Скачать
☆

Аннулирование ролей

Вариант оператора REVOKE, используемый для аннулирования ролей, выглядит следующим образом:

REVOKE [ ADMIN OPTION FOR ] role_name_commalist

FROM { PUBLIC | authID_commalist }

[ GRANTED BY { CURRENT_USER | CURRENT_ROLE } ]

{ RESTRICT | CASCADE }

Действие операции аннулирования ролей очень похоже на действие операции аннулирования привилегий. Отличие состоит в том, что аннулируются не привилегии, а роли, а также в том, что для аннулирования привилегии на передачу роли используется разделADMIN OPTION FOR176).

22.3. Управление транзакциями в sql

Область организации транзакций и управления ими настолько широка, что заслуживает отдельных книг и учебных курсов. Несмотря на то, что в курсе имеется отдельная Лекция 13, посвященная методам управления транзакциями, в этом разделе мы независимо обсудим управление транзакциями в контексте SQL.

22.3.1. Acid-транзакция

В SQL:1999 поддерживается классическое понимание транзакции, характеризуемое аббревиатурой ACID(отAtomicy,Consistency,IsolationиDurability). В соответствии с этим понятием под транзакцией разумеется последовательность операций (например, над базой данных), обладающая следующими свойствами.

  • Атомарность(Atomicy). Это свойство означает, что результаты всех операций, успешно выполненных в пределах транзакции, должны быть отражены в состоянии базы данных, либо в состоянии базы данных не должно быть отражено действие ни одной операции (конечно, здесь речь идет об операциях, изменяющих состояние базы данных). Свойство атомарности, которое часто называют свойством «все или ничего», позволяет относиться к транзакции, как к динамически образуемой составной операции над базой данных177).

176 действительности, как видно из приведенных описаний, варианты операторов GRANT и REVOKE для привилегий и ролей настолько близки, что непонятно их синтаксическое разделение, которое, очевидно, усложняет реализацию. Как кажется, это разделение не обосновано в стандарте SQL:1999.

177 В общем случае состав и порядок выполнения операций, выполняемых внутри транзакции, становится известным только на стадии выполнения.

  • Согласованность(Consistency). В классическом смысле это свойство означает, что транзакция может быть успешно завершена сфиксациейрезультатов своих операций только в том случае, когда действия операций не нарушают целостность базы данных, т. е. удовлетворяют набору ограничений целостности, определенных для этой базы данных. В стандарте SQL:1999 это свойство расширяется тем, что во время выполнения транзакции разрешается устанавливать точки согласованности (см. ниже про точки сохранения) и явным образом проверять ограничения целостности178).

  • Изоляция(Isolation). Требуется, чтобы две одновременно выполняемые транзакции179)никоим образом не действовали одна на другую. Другими словами, результаты выполнения операций транзакцииT1не должны быть видны никакой другой транзакцииT2до тех пор, пока транзакцияT1не завершится успешным образом.

  • Долговечность(Durability). После успешного завершения транзакции все изменения, которые были внесены в состояние базы данных операциями этой транзакции, должны гарантированно сохраняться, даже в случае сбоев аппаратуры или программного обеспечения.