Файл: Методические указания для дисциплины Управление и автоматизация баз данных описывают содержание практических, лабораторных занятий и самостоятельной работы, перечень вопросов на защиту выполненных работ.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 03.12.2023
Просмотров: 143
Скачиваний: 5
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
23
Обычно право использовать команды GRANT и REVOKE име- ет администратор базы данных, но если есть администратор по безопасности, то он тоже может иметь право использовать эти ко- манды. Конкретные инструкции по поводу того, кому и какие именно привилегии следует назначить или отменить, должны исхо- дить от руководства и желательно в письменном виде.
Привилегии доступа к объекту должен распределять владелец этого объекта. Даже администратор базы данных не имеет права да- вать разрешение на использование не принадлежащего ему объекта, хотя, конечно, администратор всегда имеет реальную возможность это сделать.
2.5. Команда GRANT
Команда GRANT используется для предоставления привиле- гий как на уровне доступа к системе, так и на уровне доступа к объ- ектам тем пользователям, которые уже имеют учетные записи в базе данных.
Синтаксис оператора следующий.
GRANT Привилегия1 [, Привилегия2 ] [ ON Объект ] ТО Имя_Пользователя [ WITH
GRANT OPTION | ADMIN OPTION ]
Одну привилегию пользователю можно предоставить следую- щим образом.
GRANT SELECT ON EMPLOYEE_TBL TO USERI;
Право предоставлено.
Несколько привилегий пользователю можно предоставить сле- дующим образом.
GRANT SELECT, INSERT ON EMPLOYEE_TBL TO USER1;
Право предоставлено.
В случае предоставления пользователю нескольких привиле- гий в рамках одного оператора привилегии в списке разделяются запятыми.
Нескольким пользователям привилегии предоставляются сле- дующим образом.
GRANT SELECT, INSERT ON EMPLOYEE_TBL TO USER1, USER2;
Опция GRANT OPTION команды GRANT является достаточно мощной. Если владелец объекта предоставляет привилегии относи- тельно объекта другому пользователю и использует при этом опцию
GRANT OPTION, это значит, что последний получает право пре-
24 доставлять другим привилегии использования объекта, не являясь при этом владельцем объекта. Вот пример использования опции:
GRANT SELECT ON EMPLOYEE_TBL TO USER1 WITH
GRANT OPTION;
Право предоставлено.
ADMIN OPTION
Опция ADMIN OPTION команды GRANT подобна опции
GRANT OPTION в том, что получающий привилегии пользователь наследует также и право предоставлять эти привилегии другим пользователям. Но GRANT OPTION используется для привилегий на уровне объектов, a ADMIN OPTION – на уровне системы.
Команда REVOKE отменяет привилегии, ранее предоставлен- ные пользователю базы данных. Команда REVOKE имеет две опции
– RESTRICT и CASCADE. При использовании опции RESTRICT команда REVOKE будет успешно завершена только в том случае, когда отсутствуют другие пользователи с оставшимися привиле- гиями, явно указанными оператором REVOKE. С помощью опции
CASCADE отменяются и все оставшиеся привилегии других поль- зователей. Другими словами, если владелец объекта наделил поль- зователя USERI привилегиями с опцией GRANT OPTION, а пользо- ватель USER1 наделил привилегиями пользователя USER2, то при отмене владельцем привилегий пользователя USER1 с опцией
CASCADE будут автоматически отменены и соответствующие при- вилегии пользователя USER2
Синтаксис оператора для отмены привилегий следующий.
REVOKE Привилегия! [, Привилегия2 ] [ GRANT OPTION
FOR ] ON Объект
FROM Имя_Пользователя { RESTRICT | CASCADE }
Вот пример использования подобного оператора.
REVOKE INSERT ON EMPLOYEE_TBL FROM USERI;
Право отменено.
3. ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ
1. Создать роли в соответствие с заданием.
2. Наделить роли полномочиями.
3. Создать пользователей в соответствие с заданием.
25 4. Наделить пользователей полномочиями в соответствии с заданиям.
5. Выполнить проверку выполнения привилегий пользовате- лей.
6. Команды создания заданных административных команд отобразить в отчѐте.
4. ЗАДАНИЯ
Роли
Объекты администрирования
Пользователи
Роль1 Доступ ко всем таблицам базы дан- ных. Кроме хранимых процедур
ПочтиАдмин1
Роль2 Доступ ко всем таблицам базы дан- ных
НеАдмин1
НеАдмин2 5. КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Что такое пользователь?
2. Что такое имя входа, как оно задаѐтся?
3. Что такое привилегия? Как они назначаются?
4. Для чего используется объект «Роль»? С помощью каких команд создаѐтся?
26
РАБОТА №4 ЛАБОРАТОРНАЯ. РАЗРАБОТКА ТРЕБОВАНИЙ
И КОНФИГУРИРОВАНИЕ КОРПОРАТИВНОЙ СЕТИ
1. ЦЕЛЬ РАБОТЫ
Получить практический навык создания заполнения объектов
БД средствами языка SQL.
В связи с этим задачами работы являются:
изучение основных операторов языка определения и ма- нипулирования данными;
создание и выполнение запросов в среде Management Stu- dio, обеспечивающих создание и заполнение таблиц данными.
2. ТЕОРЕТИЧЕСКИЕ ПОЛОЖЕНИЯ.
SQL (Structured Query Language, структурированный язык за- просов) – это язык программирования, предназначенный для вы- борки и обработки информации, содержащейся в реляционной базе данных. SQL является стандартным языком для работы с реляцион- ными базами данных, его основа реляционная алгебра и реляцион- ное исчисление. SQL содержит набор стандартных операторов дос- тупа к данными и манипулирования.
Существуют следующие версии SQL:
SQL1 (принята в 1986 году, дополнена в 1989 году стандарт
ANSI);
SQL2 (SQL-92 принята в 1992 году);
SQL3 (SQL-99 ) расширяет SQL2 за счет включения объект- но-реляционных инструментов и новых функциональных возмож- ностей.
Существуют версии SQL предлагаемые основными поставщи- ками СУБД, они, как правило, удовлетворяют требованиям ANSI, реализуют многие возможности SQL2 и имеют некоторые особен- ности.
SQL – это слабо структурированный язык, особенно по срав- нению с такими высокоструктурированными языками, как С, Pascal или Java. В нем нет инструкции IF..THEN для проверки условий,
27 нет инструкции GOTO для организации переходов и нет инструк- ций DO или FOR для создания циклов.
SQL обеспечивает независимость от конкретных СУБД: реля- ционную базу данных и программы, которые с ней работают, мож- но перенести с одной СУБД на другую с минимальными доработ- ками и переподготовкой персонала. Все ведущие поставщики СУБД используют SQL.
Поставщики СУБД предлагают различные диалекты SQL по- зволяющие создавать самостоятельные программные модули, на- пример, PL/SQL и Transact-SQL. В этих диалектах стандартный
SQL дополнен инструкциями IF..THEN, GOTO и др., однако эти диалекты не получили статус стандарта и являются частными раз- работками отдельных компаний (PL/SQL применяется в СУБД
Oracle, a Transact SQL – в СУБД MS SQL Server).
SQL не является отдельным программным продуктом. SQL – это неотъемлемая часть СУБД ее Манипуляционная часть, инстру- мент, с помощью которого осуществляется связь пользователя с БД.
Различают несколько групп операторов (подъязыки):
I. Язык определения данных DDL.
К языку запросов относятся операторы
CREATE TABLE – создания нового отношения;
DROP TABLE – удаление отношения;
ALTER TABLE – изменение структуры таблицы;
CREATE VIEW – создания представления;
DROP VIEW – удаления представления;
CREATE INDEX – удаление индексов.
II. Язык манипулирования данными DM (команды, DELETE,
INSERT, UPDATE )
III. Язык запросов DQL (оператор SELECT)
IV. Средства управления транзакциями.
V. Средства администрирования данными.
Используемы в SQL типы данных аналогичны применяемым в других языках программирования (смотрим практическую работу 1)
Значение NULL и его применение.
Атрибутам отношения или переменным SQL допускает при- своение специального значения NULL.
Значение NULL имеет следующий смысл:
28
значение не известно, то есть когда создается новый кортеж, а значение некоторого атрибута явно не задается и не заданно по умолчанию, то ему присваивается данное значение;
значение не может быть заданно, то есть когда значения не- которого атрибута быть не может (например, атрибут Супруг, для некоторого кортежа отношения Сотрудники, когда рассматривае- мый сотрудник не женат);
значение умалчивается, то есть, если значение атрибута, выдается по запросу, но данный атрибут запрещен для просмотра для данного источника запроса.
Если атрибут или выражение со значением NULL участвует в арифметической операции, то результат операции будет иметь зна- чение NULL.
При сравнении выражения, имеющего значение NULL с дру- гим выражением с помощью операций сравнения (=, !=, <>, <, >, >=,
<=, !> ,!<) результат будет иметь значение unknown.
Для проверки выражения на значение NULL операция сравне- ния не используется. Для Этого необходимо использовать специ- альный предикат IS NULL (IS NOT NULL), он будет рассмотрен ниже.
Операторы языка определения данных ddl
и модификации отношений
Оператор задания схемы отношения, то есть, создаѐт отно- шения (таблицы) – и их атрибуты.
Общий формат оператора
Create table ИмяОтн(Аtr1 ТипАтр [ЗначПоУмолч]
[
ОгрАтр
] …,
Аtr2
…], …
ОгрКортежа
), где
Atr1, Atr2
… – идентификаторы (имена) атрибутов отноше- ния;
ЗначПоУмолч
– значение, присваиваемое атрибуту по умол- чанию;
ОгрАтр
– ограничения на значение атрибута (будут рассмот- рены позже;
29
ОгрКортежа
– ограничения на значение корежа (будут рас- смотрены позже;
Оператор удаление отношения
Drop table ИмяОтн
Модификация отношений
Модификация отношения может быть следующих разновидно- стей:
удаление атрибута
Alter table ИмяОтн drop ИмяАтр1
– из отношения ОТН будет удалѐн атрибут именем
ИмяАтр1
;
вставка атрибута
Alter table ИмяОтн add ИмяАтр1 типАтр1 ЗначПоУмолч].. ,
где
ИмяАтр1 типАтр1 [ЗначПоУмолч]..
– описание атрибута, анало- гичное используемому в операторе
Create table
Операторы SQL манипулирования данными
Операторы данной группы позволяют модифицировать суще- ствующие кортежи отношений. То есть, вставлять новые кортежи отношения, удалять, изменять значений атрибутов.
Вставка кортежей (INSERT)
insert into ИмяОтн(ИмяАтр1, ИмяАтр2, ..) values(знач1,
знач2,…)
В результате выполнения данной команды в отношение с име- нем
ИмяОтн
будет вставлен кортеж, при этом атрибутам с именами
ИмяАтр1, ИмяАтр2
… будут присвоены значения
знач1, знач2,…
Ат- рибутам, не перечисленным в списке, будет присвоено значение по умолчанию. Если значения по умолчанию не заданы, то система по- пытается присвоить им значения NULL.
Удаление кортежей
delete from имяОтн where условие
При выполнении данной команды из отношения с именем
имя-
Отн
будут удалены кортежи, значение атрибутов которых будет со- ответствовать условию.
Модификация (обновление) кортежей
update ИмяОтн set ИмяАтр1= знач1, ИмяАтр1= знач1 [,…]
where условие
При выполнении данной команды кортежам, отвечающим за- данным условиям будет изменено значение заданных атрибутов.
30
Изменение атрибутов будет отменено, если они противоречат условиям целостности базы данных, или другим ограничениям.
Для работы с объектами СУБД MS SQL Server Menegment Stu- dio предоставляет набор команд контекстного меню, в частности для работы с таблицами может использоваться иерархия контекст- ных меню, показанная на рис. 2.1.
Рис. 2.1 Иерархия команд контекстного меню для работы с таблицами
Команда меню Script table as позволяет создавать шаблоны ко- манд для создания, удаления, вставки кортежей и для выполнения других действий с таблицами.
Созданные команды можно сохранять во внешних файлах, с расширением SQL.
3. ПОРЯДОК ВЫПОЛНЕНИЯ И ЗАДАНИЕ
Заданием на лабораторную работу является формирование ко- манд SQL, обеспечивающих создание таблиц, аналогичных полу- ченным в результате выполнения лабораторной работы №1 и запол- нение этих таблиц данными. Для создания команд можно восполь- зоваться шаблонами, получаемыми на с помощью контекстного ме- ню.
Примерный порядок выполнения работы может быть следую- щим.
31 1. Создать запросы для создания таблиц с использованием контекстного меню соответствующей таблицы. Скорректировать запросы, изменив имя таблицы (можно добавить слеш в конце имени). Например, старая таблица Nomeklatura, создаваемая –
Nomenklatura_
2. Создать запросы для вставки в таблицы значений. Исполь- зовать контекстное меню для создания запросов, при необходимо- сти вопросы нужно скорректировать, так чтобы в таблицы вводи- лись тестовые значения, введенные в аналогичных существующих таблицах.
3. Сформировать два файла запросов, первый содержит ко- манды по созданию таблиц, второй по заполнению.
4. Создать файл, содержащий команды по удалению создан- ных таблиц.
5. Выполнить запросы создания, заполнения. Показать препо- давателю результаты. Выполнить запрос по удалению. Показать преподавателю результаты.
6. Подготовить отчет. В отчет включить описание процесса создания запросов и тексты запросов и скриншоты отображающие структуру и состав полученных таблиц.
3. КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Назовите основные операторы языка определения данных.
2. Формат оператора SQL, используемого для создания отно- шений.
3. Какие операторы SQL позволяют менять состав атрибутов отношений?
4. Основные операторы языка модификации отношений.
5. Каким образом с помощью операторов SQL изменить тип атрибута в заполненной таблице?
32
1 2 3 4 5 6