Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ_практика_проектирование БД.docx
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
316.69 Кб
Скачать

Задания (базовый уровень):

1.Изучить приведенные примеры получения левого, правого и естественного соединений.

Задания (повышенный уровень)

2. В деканат сданы ведомости группы по трем предметам (алгебра, геометрия, история), представляющие собой таблицы. Ведомости соответствуют схемам отношений: Алгебра (№ п/п, ФИО, номер зачетной книжки, оценка);

Геометрия (№ п/п, ФИО, номер зачетной книжки, оценка);

История (№ п/п, ФИО, номер зачетной книжки, оценка).

Получить сводную ведомость в виде отношения Ведомость(№ п/п, ФИО, номер зачетной книжки, алгебра.оценка, геометрия.оценка, история.оценка)

с помощью языка SQL.

Вопросы:

Базовый уровень

1. К каким отношениям можно применить операцию «естественное соединение»?

Повышенный уровень

2. Поясните разницу между левым и правым соединением.

Занятие 8. Администрирование бд. Привилегии. Представления

Цель занятия: изучение операторов GRANT и REVOKE.

Теоретическое обоснование

Привилегии

Термин «привилегии» при работе с БД соответствует набору полномочий для выполнения определенных действий с объектами БД, к которым пользователь имеет право доступа. Управление доступом входит в обязанности администратора баз данных. Все привилегии можно разделить на системные и объектные. Рассмотрим операторы языка SQL, которые применяются для управления доступом к БД.

В системах клиент/сервер доступ к базе данных могут получать только зарегистрированные в системе пользователи. Для регистрации новых пользователей используется команда GRANT:

GRANT привилегия

TO имя пользователя

[ IDENTIFIED BY пароль ]

Перечень возможных системных привилегий в таблице 8.1.

Таблица 8.1 - Системные привилегии

CONNECT (соединять, связывать, быть согласованным)

Имея эту привилегию, пользователь может подключаться к базе данных и работать с объектами, к которым он имеет привилегии по доступу. Пользователь может создавать представления, синонимы и межтабличные связи.

RESOURCE (ресурсы)

Эта привилегия разрешает пользователю создавать объекты базы данных, включая таблицы и индексы.

DBA

(АБД)

Эта привилегия разрешает пользователю выполнять действия администратора базы данных.

Пример:

GRANT DBA TO SYSADM IDENTIFIED BY SYSTEM

Предоставление доступа к отдельным таблицам

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

GRANT [SELECT] [,INSERT] [,DELETE] [,UPDATE (список столбцов) ]

ON имя таблицы  имя представления

TO имя пользователя  PUBLIC

[WITH GRANT OPTION]

SQL поддерживает два аргумента для команды GRANT, которые имеют специальное значение. Это ALL PRIVILEGES (или ALL) и PUBLIC.

ALL PRIVILEGES (или ALL) заменяет список всех привилегий. PUBLIC означает, что доступом пользуются все пользователи.

Команда WITH GRANT OPTION позволяет пользователю передавать привилегии другим пользователям.

Примеры:

1) GRANT ALL ON students TO Ivanov WITH GRANT OPTION

Эта команда предоставляет все полномочия по работе с таблицей (или представлением) students пользователю Иванову, он имеет право передавать привилегии другим пользователям.

2) GRANT UPDATE(f_name, l_name, city) , SELECT ON Customer TO PUBLIC

Эта команда предоставляет возможность всем пользователям делать запросы к таблице Customer и модифицировать столбцы f_name, l_name, city.

3) Grant read access ON library TO PUBLIC

Эта команда предоставляет возможность всем пользователям получать доступ «только для чтения» к таблице library.

Отмена ранее предоставленных привилегий осуществляется по команде REVOKE, имеющей следующий синтаксис:

REVOKE список операций  ALL PRIVILEGES

ON имя _объекта

FROM список пользователей PUBLIC

[cascaderestrict]

Применение команды cascade отменяет все привилегии, назначенные во фразе WITH GRANT OPTION.

Пример:

REVOKE ALL PRIVILEGES ON tab1

FROM user4 restrict

операция будет отвергнута, если user4 передал привилегии еще кому-то.