- •Рецензенты:
- •Введение
- •Лабораторная работа №1: «Логическое проектирование»
- •Вопросы к допуску
- •Контрольные вопросы
- •Лабораторная работа №2: «Физическое проектирование: построение схемы данных»
- •Вопросы к допуску
- •Контрольные вопросы
- •Лабораторная работа №3: «Создание таблиц базы данных в ms sql Server 2000»
- •Имя_столбца тип constraint имя_ограничения ограничение
- •Имя_столбца as выражение
- •Вопросы к допуску
- •Контрольные вопросы
- •Лабораторная работа №4: «Создание представлений в ms sql Server 2000»
- •Вопросы к допуску
- •Контрольные вопросы
- •Лабораторная работа №5: «Разработка sql-сценариев»
- •Exec имя_сценария.Sql
- •Declare имя_переменной тип_переменной
- •Begin набор операторов end
- •If логическое_условие
- •Вопросы к допуску
- •Контрольные вопросы
- •Лабораторная работа №6: «Разработка хранимых процедур»
- •Вопросы к допуску
- •Контрольные вопросы
- •Лабораторная работа №7: «Создание триггеров»
- •Вопросы к допуску
- •Контрольные вопросы
- •Лабораторная работа №8: «Создание учетных записей. Управление разрешениями»
- •Вопросы к допуску
- •Контрольные вопросы
- •Рекомендуемая литература
Вопросы к допуску
Что называется триггером?
Для чего используют триггеры?
С какими объектами базы данных можно связать триггеры?
В каких случаях следует применять ограничения и нет необходимости в применении триггеров?
В каких случаях следует применять триггеры вместо ограничений?
Как осуществляется запуск триггера?
Контрольные вопросы
Какие виды триггеров используются в MS SQL Server 2000?
Охарактеризуйте after-триггеры;
Охарактеризуйте instead of триггеры;
Какие операции способны спровоцировать запуск триггера?
Опишите синтаксис команды, создающей триггер;
Как изменять триггер средствами T-SQL?
Как удалить триггер средствами T-SQL?
Каким образом можно временно отключить триггер, не удаляя его?
Для чего используется таблица inserted? Какие данные хранятся в ней и когда?
Для чего используется таблица deleted? Какие данные хранятся в ней и когда?
Приведите пример использования функции Update();
Каким образом строится маска в функции Column_updates()?
Как использовать функцию column_updates() для проверки изменений в столбцах таблицы?
С помощью какой функции можно организовать вывод пользовательских сообщений?
Лабораторная работа №8: «Создание учетных записей. Управление разрешениями»
Задание:
Создать несколько учетных записей пользователей. Продемонстрировать объединение учетных записей в группу;
В среде Enterprise Manager продемонстрировать назначение прав и разрешений пользователям как непосредственно, так и включая их в роли;
Продемонстрировать управление разрешениями в среде Query Analyzer на языке T-SQL.
Теоретический материал:
В данной лабораторной работе будет рассмотрена задача управления учетными записями пользователей. Хотя эта задача непосредственно не входит в процесс проектирования, разработчик может при создании базы определить группы пользователей и разграничить доступ к базе данных.
Задача управления учетными записями и разграничения доступа, является одной из множества задач реализации защиты базы данных. Фирмой Microsoft предлагается шестиуровневая схема защиты данных:
Физический уровень – на данном уровне рассматриваются методы защиты инфраструктуры и серверного оборудования (к примеру, позволяет предотвратить кражу жесткого диска с конфиденциальными данными);
Безопасность сетевого протокола – рассматриваются методы защиты протоколов передачи данных от внедрения злонамеренного кода и перехвата информации. Рекомендуется использовать защищенные протоколы, такие как SSL и IPSec;
Доменная безопасность – безопасность на уровне домена NT;
Безопасность локального компьютера – если SQL Server установлен на локальном компьютере, необходимо ограничить доступ к данному компьютеру;
Безопасность SQL Server – на данном уровне рассматриваются методы защиты в MS SQL Server 2000;
Безопасность приложений – рассматриваются методы защиты прикладных программ, взаимодействующих с базой данных.
В лабораторной работе мы будем рассматривать пятый уровень защиты. Защита в MS SQL Server 2000 реализуется посредством аутентификации, авторизации, аудита и шифрования.
Под аутентификацией понимается предоставление доступа к MS SQL Server 2000. В процессе аутентификации необходимо выяснить личность пользователя (по его учетной записи), желающего получить доступ к серверу и проверить, имеет ли он на это право.
MS SQL Server 2000 предлагает два типа аутентификации:
Windows only – аутентификация средствами Windows. Рекомендуется выбрать именно этот режим. В данном режиме мы используем учетные записи пользователей домена или рабочей группы Windows. Таким образом, к серверу имеют доступ только уже зарегистрированные в сети пользователи, которые проходят проверку подлинности средствами Windows. Выбрав данный режим, необходимо указать, каким именно пользователям Windows-сети разрешен доступ к SQL Server. Для этого в среде Enterprise Manager переходим на узел Security и выполняем команду New Login. Откроется диалоговое окно, в котором можно либо ввести, либо выбрать нужную учетную запись.
Mixed Mode – смешанный режим. Разрешена аутентификация как средствами Windows, так и средствами MS SQL Server 2000. В настоящее время данный режим не рекомендуется использовать, в связи с тем, что собственные средства проверки контроля учетных записей в MS SQL Server 2000 намного слабее, чем аналогичные в Windows.
После того, как пользователь получил доступ к серверу, ему необходимо пройти авторизацию. Под авторизацией понимается процесс выяснения того, какие именно действия может выполнять данный пользователь на сервере.
В MS SQL Server 2000 авторизация реализуется посредством разрешения и ролей. Разрешения позволяют выполнять определенные действия и делятся на два вида: разрешения на работы с объектами и разрешения на выполнение операторов.
Разрешения на работу с объектами могут выдаваться для каждого объекта базы данных отдельно. В данную группу входят следующие разрешения:
Select – разрешение на чтение и выборку данных;
Update – разрешение на изменение данных;
Delete – разрешение на удаление данных;
Insert – разрешение на вставку новых данных;
Execute – разрешение на исполнение хранимых процедур
В группу разрешений на работу с операторами входят create и backup, соответственно разрешающие создание новых объектов и резервное копирование базы данных.
Работа с разрешения ми происходит следующим образом. Можно выдавать, отменять или запрещать разрешения. В T-SQL для этого используются операторы grant, revoke и deny, соответственно. Находясь в среде Enterprise Manager, можно работать с разрешениями более простым и наглядным способом. Необходимо выбрать нужный объект и вызвать через контекстное меню его свойства. В открывшемся окне выбрать команду permission (разрешения) и с помощью мыши явно указать какие разрешения должны быть выданы, какие сняты и на что налагается запрет.
Механизм разрешений является достаточно мощным, однако для обеспечения работы некоторого пользователя иногда приходится выдавать множество разрешений для множества объектов. Когда пользователей много, а разрешенные им действия одни и те же, появляются мысли об автоматизации разграничения доступа.
В MS SQL Server 2000 данная задача решается посредством механизма ролей. Под ролью понимается набор разрешений, предназначенный для решения некоторой задачи. Таким образом, имея множество пользователей, выполняющих одинаковые действия с базой данных можно оформить необходимые разрешения в виде роли и выдавать разрешения, включая пользователей в эту роль.
MS SQL Server 2000 содержит некоторое количество предопределенных ролей, и предоставляет возможности для создания собственных ролей. Предопределенные роли делятся на роли уровня сервера и роли уровня базы данных. Первые из них предназначены для решения административных задач, касающихся всего сервера в целом. В эту группу входят роли: sysadmin, serveradmin, securityadmin, setupadmin, processadmin, dbcreator, bulkadmin.
Группа ролей уровня базы данных предназначена для решения задач в конкретной базе данных. Прежде чем включить пользователя в одну из таких ролей, необходимо указать к каким базам данных он имеет доступ. Это можно выполнить, вызвав окно свойств учетной записи пользователя. Рассмотрим роли, входящие в эту группу:
Db_owner – владелец базы данных. Может выполнять любые действия с ней;
Db_accessadmin – имеет право предоставлять и аннулировать доступ к базе данных;
Db_securityadmin – назначает разрешения, администрирует роли и т.п.;
Db_backupoperator – может создавать резервную копию базы данных;
Db_ddladmin – может выполнять любые операторы подмножества DDL языка SQL;
Db_datareader – имеют право выборки данных из таблиц и представлений;
Db_writer – имеют право вставки, изменения и удаления данных.
Для того, чтобы включить пользователя в роль достаточно дважды щелкнуть мышкой по имени роли и в появившемся диалоговом окне добавить учетную запись пользователя.
