Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РЭУБД.doc
Скачиваний:
16
Добавлен:
20.12.2018
Размер:
239.62 Кб
Скачать

Билет №2

  1. Управление распределёнными данными: технологии управления, блокировка ресурсов, сериализуемые транзакции.

Один из способов предотвратить проблемы при параллельной обработке — запретить совместное использование ресурсов путем блокировки данных, которые считываются для обновления. В этом случае, если блок записей или одна запись «заняты» какой-либо транзакцией, то другая транзакция не сможет их изменить.

Блокировки могут налагаться либо автоматически, по требованию СУБД, либо по запросу пользователя. Некоторые СУБД предусматривают блокировку ресурсов на уровне строк, другие — на уровне страницы, третьи — на уровне таблицы, четвертые — на уровне всей, базы данных.

Когда две или более транзакции обрабатываются параллельно, их результаты, сохраняемые в базе данных, должны быть логически согласованы с результатами, которые получились бы, если бы данные транзакции обрабатывались каким-нибудь последовательным способом. Такая схема обработки параллельных транзакций называется сериализуемой (serializable).

  1. Привилегии на доступ к таблице, полю таблицы, к хранимой процедуре. Отмена привилегий.

Безопасность в языке SQL контролируется на уровне таблицы с помощью

привилегий доступа – списка операций, которые пользователю разрешено выполнять над данной таблицей или над представлением, использующим данную таблицу.

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

- передача пользователям, триггерам, хранимым процедурам или представлениям: SELECT, INSERT, UPDATE, DELETE и REFERENCES привилегий доступа к таблице или представлению;

- передача для роли: SELECT, INSERT, UPDATE, DELETE и REFERENCES привилегий доступа к таблице или представлению;

- передача пользователям права использовать привилегии, переданные конкретной роли, т.е. при подключении к БД обладать привилегиями, определенными соответствующей ролью в БД;

- передача пользователям, триггерам, хранимым процедурам или представлениям привилегии EXECUTE на выполнение хранимой процедуры.

Для использования хранимой процедуры пользователь должен иметь привилегию на ее выполнение. Формат оператора GRANT для установки привилегии на выполнение хранимой процедуры:

GRANT EXECUTE ON PROCEDURE procname TO user;

Дополнительно, хранимая процедура должна иметь привилегии на все, имеющие к ней отношение, таблицы для всех выполняемых операций. Например, установка привилегии на выборку для хранимой процедуры имеет следующий формат:

GRANT SELECT ON tablename TO PROCEDURE procname;

ОТМЕНА ПРИВИЛЕГИЙ

Также как ANSI предоставляет команду CREATE TABLE, чтобы создать таблицу, а DROP TABLE - чтобы от нее избавиться, так и команда GRANT позволяет вам давать привилегии пользователям, не предоставляя способа отобрать их обратно.

Удаление привилегии выполняется командой REVOKE, фактически - стандартному средству с достаточно понятной формой записи. Синтаксис команды REVOKE похож на GRANT, но имеет обратный смысл.

  1. Создайте запрос, позволяющий вычислить: количество отделов, являющихся подразделениями отдела 100 (Маркетинг и продажи), их суммарный, средний, минимальный и максимальный бюджеты по таблице Department.

    Билет №4

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]