Выполнение транзакций и безопасность

Содержание

Слайд 2

Выполнение транзакций и безопасность

Урок 3B / Слайд из 25

СРС 2
Какие операторы SQL

Выполнение транзакций и безопасность Урок 3B / Слайд из 25 СРС 2
используются для создания и удаления таблиц?
DDL
DQL
DML
DCL
_____ представляет собой именованную производную виртуальную таблицу, не существующую физически.
Таблица-источник
Запрос
Представление
Базовая таблица
Какой тип представления включает все строки, но лишь некоторые из столбцов таблицы-источника?
Соединенное
Подмножество столбцов
Групповое
Подмножество строк

Слайд 3

Выполнение транзакций и безопасность

Урок 3B / Слайд из 25

СРС 2
Какое условие целостности

Выполнение транзакций и безопасность Урок 3B / Слайд из 25 СРС 2
данных требует, чтобы столбец содержал ненулевые значения?
Целостность сущности
Ссылочная целостность
Деловые правила
Необходимость данных
Для любого события, которое вызывает изменение содержимого таблицы, пользователь может указать связанное с ним действие, которое должна выполнить СУБД. Как называется это действие?
Журнал
Триггер
Целостность
Отношение

Слайд 4

Выполнение транзакций и безопасность

Урок 3B / Слайд из 25

Обработка транзакций в базе

Выполнение транзакций и безопасность Урок 3B / Слайд из 25 Обработка транзакций
данных
Транзакция представляет собой последовательность одного или более операторов SQL, которые вместе образуют логическую элементарную операцию.
Для сохранения непротиворечивости базы данных должны быть выполнены все операторы, входящие в состав транзакции.
СУБД отвечает за обеспечение непротиворечивости базы данных. Это справедливо даже в случае аварийного завершения прикладной программы или отказа оборудования во время выполнения транзакции.
СУБД не должна допускать частичного выполнения транзакции при любых обстоятельствах.
Для поддержки непротиворечивости СУБД отменяет все изменения, сделанные незавершенной транзакцией.

Слайд 5

Выполнение транзакций и безопасность

Урок 3B / Слайд из 25

Возврат транзакций
Обработка транзакций поддерживается

Выполнение транзакций и безопасность Урок 3B / Слайд из 25 Возврат транзакций
двумя операциями SQL:
Операция COMMIT (фиксация)
Операция ROLLBACK (откат)

Слайд 6

Выполнение транзакций и безопасность

Урок 3B / Слайд из 25

Журнал транзакций
Для отмены изменений,

Выполнение транзакций и безопасность Урок 3B / Слайд из 25 Журнал транзакций
внесенных в базу данных, СУБД ведет журнал транзакций.
В журнале транзакций отслеживается все действия, выполненные транзакциями.
Когда пользователь выполняет оператор SQL, изменяющий базу данных, СУБД в этот момент делает запись в журнале транзакций.
Журнал транзакций отражает две копии каждой строки, на которую воздействовал оператор. В одной копии отражается строка до выполнения оператора, а в другой - измененная строка.
Если пользователь выполняет COMMIT, в журнал заносится завершение транзакции. Если пользователь выполняет ROLLBACK, СУБД ищет копии строк, записанные до внесения изменений.

Слайд 7

Выполнение транзакций и безопасность

Урок 3B / Слайд из 25

Проблема совпадения во времени
В

Выполнение транзакций и безопасность Урок 3B / Слайд из 25 Проблема совпадения
многопользовательских системах обработка транзакций усложняется.
СУБД должна осуществлять восстановление после системных сбоев или ошибок, а также предотвращать взаимное влияние действий пользователей, чтобы они не мешали друг другу.
Существуют три проблемы, которые могут проявиться в многопользовательском окружении:
Проблема утери обновления
Проблема незафиксированной зависимости
Проблема противоречивости данных
Наиболее распространенным способом контроля совместного доступа к данным является механизм блокирования.

Слайд 8

Выполнение транзакций и безопасность

Урок 3B / Слайд из 25

Блокировка
Для уверенности в том,

Выполнение транзакций и безопасность Урок 3B / Слайд из 25 Блокировка Для
что конкретный объект базы данных не будет изменен непредсказуемым образом в условиях, когда возможность для этого существует, транзакция приобретает блокировку.
Результатом такой блокировки является запрет для всех других транзакций изменять объект базы данных.
Обрабатывать объект будет первая транзакция, и он будет оставаться стабильным до тех пор, пока транзакция этого требует.
Методика блокирования решает все три проблемы совпадения обращений во времени.
Блокировка может заставить транзакцию очень долго ждать, пока часть базы данных, доступ к которой необходим, заблокирована другими транзакциями.

Слайд 9

Выполнение транзакций и безопасность

Урок 3B / Слайд из 25

Типы блокировок
Имеется два основных

Выполнение транзакций и безопасность Урок 3B / Слайд из 25 Типы блокировок
типа блокировки:
Совместная: СУБД использует совместную блокировку, когда транзакции необходимо прочесть данные из базы данных. Другая транзакция, выполняемая в это же время, тоже может получить совместную блокировку на те же данные, которая разрешает чтение этих данных другим транзакциям.
Монопольная: СУБД использует монопольную блокировку, когда транзакции требуется обновить данные в базе данных. Когда транзакция приобретает монопольную блокировку на какие-либо данные, никакая другая транзакция не сможет получить ни совместной, ни монопольной блокировки тех же данных.

Слайд 10

Выполнение транзакций и безопасность

Урок 3B / Слайд из 25

Взаимная блокировка
Вместе с блокировкой

Выполнение транзакций и безопасность Урок 3B / Слайд из 25 Взаимная блокировка
может появиться и проблема взаимной блокировки.
Взаимная блокировка представляет собой ситуацию, когда две или более транзакций пребывают в одновременном состоянии ожидания, и каждая из них ждет, пока другая снимет блокировку, чтобы продолжить работу.
Для того, чтобы принять меры при появлении взаимной блокировки, СУБД периодически проверяет блокировки, удерживаемые различными транзакциями.
Обнаружив взаимную блокировку, СУБД выбирает одну из транзакций, как "жертву", и выполняет для нее откат. При этом снимается блокировка, удерживаемая транзакцией, и другая транзакция получает возможность продолжить работу.
Пострадавшая транзакция получает сообщение об ошибке, информирующее о снятии взаимной блокировки и об откате выполненных действий.
Если неприятности от взаимной блокировки появились при работе с SQL в интерактивном режиме, операторы SQL можно ввести заново.
Если взаимная блокировка произошла в прикладной программе, должна сработать предусмотренная возможность обработки такой ситуации.

Слайд 11

Выполнение транзакций и безопасность

Урок 3B / Слайд из 25

Безопасность базы данных
Требования

Выполнение транзакций и безопасность Урок 3B / Слайд из 25 Безопасность базы
безопасности базы данных многочисленны и многообразны.
Вот некоторые типичные примеры требований безопасности:
Данные в таблице должны быть доступны только определенным пользователям.
Только избранным пользователям следует разрешать обновление базы данных, остальным пользователям разрешается просмотр данных и работа с ними.
Для некоторых таблиц доступ должен быть ограничен несколькими столбцами.
Только избранным пользователям может быть разрешен доступ к таблицам с использованием прикладных программ.
Ответственность за соблюдение требований безопасности возлагается на СУБД.

Слайд 12

Выполнение транзакций и безопасность

Урок 3B / Слайд из 25

Концепции схемы безопасности
Схема безопасности

Выполнение транзакций и безопасность Урок 3B / Слайд из 25 Концепции схемы
СУБД основывается на трех концепциях:
Пользователи
Объекты базы данных
Привилегии

Слайд 13

Выполнение транзакций и безопасность

Урок 3B / Слайд из 25

Пользователи
Каждому пользователю присваивается

Выполнение транзакций и безопасность Урок 3B / Слайд из 25 Пользователи Каждому
идентификатор, определяющий пользователя в программном обеспечении СУБД.
Идентификатор пользователя определяет, будет ли оператор разрешен или отвергнут СУБД.
В большинстве СУБД вместе с идентификатором пользователя должен быть указан связанный с ним пароль. СУБД проверяет пароль, чтобы убедиться в полномочиях пользователя работать под указанным идентификатором.
В зависимости от ситуации:
Каждый пользователь получает отдельный идентификатор.
Идентификатор присваивается двум или более пользователей.
В больших производственных базах данных работают группы пользователей с одинаковыми интересами. В пределах каждой группы пользователи имеют идентичные потребности на доступ к данным.

Слайд 14

Выполнение транзакций и безопасность

Урок 3B / Слайд из 25

Объекты базы данных
К

Выполнение транзакций и безопасность Урок 3B / Слайд из 25 Объекты базы
определенным объектам базы данных применяются ограничения по безопасности.
Такими объектами являются:
Таблицы
Представления
Каждая таблица или представление могут быть защищены индивидуально.
Доступ к таблице или представлению может быть разрешен для одних пользователей и запрещен для других.

Слайд 15

Выполнение транзакций и безопасность

Урок 3B / Слайд из 25

Привилегии
Привилегиями называется набор

Выполнение транзакций и безопасность Урок 3B / Слайд из 25 Привилегии Привилегиями
действий, которые пользователь может выполнять с объектами базы данных.
Для таблиц и представлений можно указать четыре привилегии:
Привилегия SELECT
Привилегия INSERT
Привилегия DELETE
Привилегия UPDATE
Владелец таблицы имеет все привилегии на эту таблицу.
Владелец может предоставить другим пользователям привилегии на доступ к этой таблице.
Владелец представления имеет только привилегию SELECT.
Чтобы пользоваться другими привилегиями, владелец представления должен получить привилегии на таблицы-источники этого представления.

Слайд 16

Выполнение транзакций и безопасность

Урок 3B / Слайд из 25

Организация схемы безопасности
Схема

Выполнение транзакций и безопасность Урок 3B / Слайд из 25 Организация схемы
безопасности для базы данных может быть организована при помощи следующих операторов SQL:
GRANT (предоставление полномочий)
REVOKE (отмена полномочий)
Для того, чтобы выполнить любую операцию в базе данных, пользователь должен иметь соответствующие полномочия для этой операции.

Слайд 17

Выполнение транзакций и безопасность

Урок 3B / Слайд из 25

Предоставление привилегий
С помощью

Выполнение транзакций и безопасность Урок 3B / Слайд из 25 Предоставление привилегий
оператора GRANT Вы можете указать:
Конкретный перечень предоставляемых привилегий
Имя таблицы, к которой относятся привилегии
Идентификатор пользователя, которому предоставляются привилегии
Все привилегии могут быть предоставлены пользователю при помощи одного оператора:
GRANT ALL PRIVILEGES ON <имя таблицы> TO <пользователь>
Вместо того, чтобы предоставлять привилегии всем пользователям поодиночке, вы можете сделать это одним оператором:
GRANT <имя привилегии> ON <имя таблицы> TO PUBLIC
Ключевое слово PUBLIC используется для предоставления привилегий всем полномочным пользователям базы данных.
Привилегия может бать также предоставлена только для указанных столбцов таблицы или представления:
GRANT UPDATE(<имя столбца>) ON <имя таблицы> TO <пользователь>

Слайд 18

Выполнение транзакций и безопасность

Урок 3B / Слайд из 25

Передача привилегий
Вы можете

Выполнение транзакций и безопасность Урок 3B / Слайд из 25 Передача привилегий
предоставить привилегию другому пользователю и разрешить ему передавать привилегию остальным пользователям.
В SQL это осуществляется при помощи раздела WITH GRANT OPTION оператора GRANT:
GRANT <имя привилегии> ON <имя таблицы> TO <пользователь1> WITH GRANT OPTION

Слайд 19

Выполнение транзакций и безопасность

Урок 3B / Слайд из 25

Отмена привилегий
Предоставленные привилегии

Выполнение транзакций и безопасность Урок 3B / Слайд из 25 Отмена привилегий
можно отменить.
Оператор REVOKE отбирает все или некоторые из предоставленных привилегий.
Точно так же, как все привилегии могут быть предоставлены одним оператором, так и отмена всех привилегий возможна при помощи одного оператора.
Соответственно, одним оператором можно отменить привилегию и для все пользователей.

Слайд 20

Выполнение транзакций и безопасность

Урок 3B / Слайд из 25

Представления и безопасность
Представления

Выполнение транзакций и безопасность Урок 3B / Слайд из 25 Представления и
играют ключевую роль в безопасности.
Представления дают возможность точно контролировать, какие именно данные сделаны видимыми для пользователя.
Если в созданное представление включены лишь некоторые из столбцов, доступ пользователя к таблице ограничен только этими столбцами, определенными в представлении.

Слайд 21

Выполнение транзакций и безопасность

Урок 3B / Слайд из 25

Выводы
На этом уроке Вы

Выполнение транзакций и безопасность Урок 3B / Слайд из 25 Выводы На
узнали, что:
Транзакции представляют собой последовательность, состоящую из одного или нескольких операторов SQL, которые вместе образуют элементарную логическую операцию.
Для сохранения непротиворечивости базы данных должны быть выполнены все операторы, входящие в состав транзакции.
Для поддержания непротиворечивости СУБД отменяет все действия, выполненные незавершенной транзакцией.
Операции SQL, поддерживающие обработку транзакций:
Операция COMMIT
Операция ROLLBACK
Для отмены изменений, внесенных в базу данных, СУБД ведет журнал транзакций. Журнал транзакций отслеживает все действия, выполненные транзакциями.

Слайд 22

Выполнение транзакций и безопасность

Урок 3B / Слайд из 25

Выводы (продолжение..)
В многопользовательских

Выполнение транзакций и безопасность Урок 3B / Слайд из 25 Выводы (продолжение..)
системах обработка транзакций усложняется. Существуют три проблемы, которые могут появиться в многопользовательском окружении:
Проблема утери обновления
Проблема незафиксированной зависимости
Проблема противоречивости данных
Методика блокирования решает все три проблемы совпадения обращений во времени. Однако, она может заставить транзакцию очень долго ждать, пока часть базы данных, доступ к которой необходим, заблокирована другими транзакциями.
Взаимная блокировка представляет собой ситуацию, когда две или более транзакций пребывают в одновременном состоянии ожидания, и каждая из них ждет, пока другая снимет блокировку, чтобы продолжить работу.

Слайд 23

Выполнение транзакций и безопасность

Урок 3B / Слайд из 25

Выводы (продолжение..)
Требования безопасности

Выполнение транзакций и безопасность Урок 3B / Слайд из 25 Выводы (продолжение..)
базы данных многочисленны и многообразны. Вот некоторые типичные примеры требований безопасности:
Данные в таблице должны быть доступны только определенным пользователям.
Только избранным пользователям следует разрешать обновление базы данных, остальным пользователям разрешается просмотр данных и работа с ними.
Для некоторых таблиц доступ должен быть ограничен несколькими столбцами.
Только избранным пользователям может быть разрешен доступ к таблицам с использованием прикладных программ.
Схема безопасности СУБД основывается на трех концепциях:
Пользователи
Объекты базы данных
Привилегии
Объектами, к которым применяются ограничения по безопасности, являются:
Таблицы
Представления
Имя файла: Выполнение-транзакций-и-безопасность.pptx
Количество просмотров: 194
Количество скачиваний: 3