- •Н.И. Коваленко
- •Коваленко н.И., Банчук г.Г.
- •Коваленко Надежда Ивановна
- •Тема I. Общие сведения о ms sql Server 2000
- •1. Базы данных типа клиент/сервер
- •Система типа клиент/сервер
- •2. История sql Server
- •Основные количественные показатели системы sql – сервер
- •3. Обзор sql Server 2000
- •4. Стандартные объекты sqlServer
- •ТемаIi. Работа с ms sqlServer2000 и его компонентами
- •1. Запуск, приостановка и завершение работы sqlServer
- •2. SqlServerEnterpriseManager
- •3. Программа sqlServerQueryAnalyzer
- •Панель инструментов утилиты Query Analyzer
- •4. Обслуживание баз данных
- •Файлы операционной системы, используемые sql Server 2000:
- •Структура базы данных
- •5. УстановкаMicrosoftSqlServer2000
- •Ограничения инсталляции sql-сервера
- •ТемаIii. Работа с базой данных создание и использование индексов и ключей
- •1. Базы данных и их свойства
- •Описание ролей, используемых для доступа к базе данных и серверу баз данных
- •Дополнительные опции настройки базы данных
- •Настройка параметров доступа к базе данных
- •2. Таблицы базы данных.
- •3. Типы данных, используемые в sql-сервере
- •Текстовые типы данных
- •Типы данных даты и времени
- •Типы данных для хранения больших объемов информации
- •Типы данных специального назначения:
- •4. Основные операции с базами данных
- •5. Восстановление бд (администрированиеSqlServer2000)
- •6. Создание и использование индексов и ключей в системе sql Server.
- •7. Использование ограничений
- •8. Использование диаграмм для разработки структуры базы данных
- •9. Создание представлений (видов)
- •ТемаIv. Правила и создание значения
- •1. Инструменты контроля целостности данных
- •2. Создание правил и стандартных значений
- •ТемаV. Триггеры в системеSql–сервер
- •1. Понятие триггера. Типы триггеров
- •2. Создание триггеров
- •3. Использование триггеров. Виды триггеров
- •ТемаVi. Оптимизация запросов и основы sql
- •1. Оптимизация запросов
- •2. Основные операторы sql в sql Server 2000
- •3. Объединение таблиц в операторе select
- •From titles
- •4. Использование директив group by иHaving
- •5. Оператор insert
- •6. ОператорUpdate
- •7. ОператорDelete
- •8. ОператорCreatetable
- •ТемаVii. Создание и работа с представлениями
- •1. Основные сведения о представлениях
- •2. Создание представлений. Отображение представлений
- •3. Редактирование представлений. Отображение зависимостей представлений. Создание представлений и представлений
- •4. Переименование столбцов представлений. Переименование представлений. Удаление представлений
- •5. Изменение данных посредством представлений. Обновление данных с помощьюSqlServerEnterpriseManager
- •ТемаViii. Создание и использование курсоров
- •1. Понятие курсора
- •2. Выборка данных из курсора
- •3. Операторы и глобальные переменные для работы с курсорами
- •4. Примеры использования курсоров
- •ТемаIx. Использование хранимых процедур
- •1. Достоинства и недостатки хранимых процедур
- •2.Создание хранимой процедуры
- •3. Операторы языка управления программой. Оператор declare
- •4. Операторы goto, begin…end и if…else
- •5. Операторы waitfor, return, while, break и continue
- •6. Операторы print и raiserror
- •7. Использование параметров в хранимых процедурах
- •8. Глобальные переменные. Отладка хранимых процедур
- •Тема X. Транзакции и блокировки
- •1. Определение транзакции. Ограничения для транзакций. Уровни изоляции транзакций
- •2. Базовая информация о блокировках. Типы блокировок
- •3. Создание транзакций и работа с ними. Точки сохранения
- •4.Отображение информации о блокировках. Явное задание блокировки
- •Описание параметров для явного задания блокировок
- •ТемаXi. Система безопасностиSqlServer2000
- •1. Типы безопасности. Создание и управление бюджетами пользователей
- •Стандартные роли сервера
- •Стандартные роли базы данных
- •2. Добавление новых пользователей. Удаление идентификаторов и пользователей
- •3. Создание ролей. Удаление ролей
- •4. Права доступа. Управление правами доступа
- •ТемаXii. Использование распределенных объектов управления.
- •1.Sql-dmo. Назначение, возможности
- •2. Экспорт данных с помощью команды вср
- •3. Использование объектовSql-dmOв хранимых процедурах
- •ТемаXiii. Основные сведения о хранилищах данных
- •1. Хранилища данных. Системы поддержки принятия решений (dss). Интерактивная аналитическая обработка (olap)
- •Сравнение субд и хранилища данных
- •2. Компоненты хранилища данных. Хранилища данных и магазины данных
- •3. Преобразование данных. Метаданные
- •4. Разработка плана хранилища данных
- •Microsoft Repository
- •С помощью мастера dts можно выполнять также простые преобразования данных, сложные преобразования выполняются с помощью dts Designer.
- •ТемаXiv. Использование служб преобразования данных
- •1. Службы преобразования данных (dts).DtSи хранилища данных
- •2. СредствоDtsDataPump
- •3. МастераDts
- •4. ИспользованиеDtsDesigner
- •Тема XV. Службы olap Microsoft sql Server
- •1.OlaPи многомерные данные
- •2. Хранение данных в бдolap
- •3. Оптимизация базы данныхOlap
- •4. Доступ к многомерным данным
2. Добавление новых пользователей. Удаление идентификаторов и пользователей
Процедура SP_ADDUSER похожа по стилю на процедуру SP_ADDLOGIN. Сходство состоит в том, что SP_ADDUSER берет существующий вход в систему и добавляет его к активной в тот момент базе данных. Перед выполнением хранимой процедуры SP_ADDUSER следует с помощью команды USE установить требуемую текущую базу данных.
Синтаксис процедуры SP_ADDUSER:
SP_ADDUSER [@loginame =] ‘идентификтор_пользова-теля’
[, [@name_in_db =] ‘имя__пользователя’
[, [@rolename =] 'имя_роли']]
Параметры имеют следующий смысл:
идентификатор_пользователя - это имя входа в систему, которое будет добавлено к базе данных в качестве пользователя Неверные идентификаторы добавлены не будут.
имя__пользователя - псевдоним, который идентификатор будет иметь в этой базе данных. Эта функция позволяет с помощью одного и того же идентификатора присоединяться к различным базам данных на одном и том же сервере и иметь различные имена в каждой из них.
имя_роли — дает возможность указания группы пользователей, к которой будет принадлежать данный идентификатор. Применение роли упрощает поддержку безопасности, т к. вместо предоставления прав доступа отдельным пользователям эти права предоставляются всей роли. Все ее члены будут иметь права, предоставленные этой роли.
Пример добавления пользователя в текущую активную базe данных:
SP_ADDUSER 'Ronald'
В главном окне SQL Server Enterprise Manager есть кнопка Delete, расположенная на панели управления. Для удаления любого пользователя или идентификатора, которым вы больше не хотите предоставлять доступ к базе данных или серверу, следует нажать эту кнопку.
Для удаления идентификатора или пользователя в базе данных следует применять системные процедуры SP_DROPLOGIN и SP_DROPUSER соответственно.
Их синтаксис очень сходен, особенно когда имя пользователя базы данных совпадает с именем идентификатора:
SP_DROPLOGIN идентификатор
и
SP_DROPUSER имя_пользователя
3. Создание ролей. Удаление ролей
Роль (Role) — это новое понятие, появившееся в SQL Server 7.0. Говоря простым и понятным языком, роль — это именованный набор прав в рамках сервера или конкретной базы данных. В каком-то смысле роли похожи на группы Windows NT. Права доступа предоставляются всем членам роли одновременно. Это более практичный и безопасный подход в сравнении с предоставлением прав специального доступа к каждому набору таблиц индивидуальным пользователям.
При установке SQL Server в сервере появляется несколько стандартных ролей. Все пользователи, создаваемые в системе, будут принадлежать к этой группe и иметь все установленные для нее права доступа.
Пользователи могут принадлежать к произвольному числу ролей вашей системы. Для конфигурирования пользователей системы, имеющих различные "классы" функционирования, следует тщательно разработать набор ролей.
Помимо стандартных ролей на уровне сервера можно создавать сколько угодно ролей для конкретной базы данных. Это значит, что когда вы определяете роль для одной базы данных, другие базы недоступны для этой роли. Для каждой базы данных роль должна быть создана заново. Обойти это ограничение можно с помощью модели базы данных (Model database). Создайте в этой базе данных необходимые роли. После этого, когда модель базы данных будет использована в качестве образца для новой базы, все созданные в ней роли будут автоматически наследоваться.
Роль Public - это специальная роль на уровне базы данных, к которой приписаны все пользователи, зарегистрированные в базе данных. Ей придается определенный набор прав, которые передаются любому пользователю, приписанному к базе данных. Все пользователи, роли и группы Windows NT попадают в нее автоматически. Она присутствует во всех пользовательских базах данных, а также в Master, Msdb, Tempdb и Model. Уничтожить эту роль нельзя.
При подключении пользователя к серверу oн автоматически получает некоторый минимальный набор прав, унаследованный от этой роли. Этот набор достаточно ограничен и в основном связан с возможностью просмотра содержимого таблиц и выполнения некоторых хранимых процедур для получения информации из базы данных Master и пользовательских баз данных.
Роль сама по себе не обеспечивает доступа к базе данных, поскольку пользователь, входящий в нее, сначала должен подключиться к базе данных, и только потом можно будет проверить его принадлежность конкретной роли.
SQL Server Enterprise Manager позволяет легко добавлять роли к базам данных. Активизируйте SQL Server Enterprise Manager и раскройте в дереве сервера базу данных, в которой надо создать роль. Щелкните правой кнопкой мыши на папке Database Roles и в контекстном меню выберите команду New Database Role. Появится диалоговое окно Database Role Properties - New Role. Переключатель Database Role Type позволяет выбирать тип создаваемой роли. SQL Server поддерживает два типа ролей базы данных:
включающие пользователей;
роли для приложения.
Установив переключатель в положение Standard Role, мы получаем доступ к списку User и кнопкам Add и Remove, с помощью которых можно увидеть пользователей, приписанных к роли, а также добавлять и/или удалять пользователей из роли. При нажатии кнопки Add открывается диалоговое окно Add Role Members, где представлены пользователи, зарегистрированные в системе. Удалить пользователя из роли еще проще — просто выделите его и нажмите кнопку Remove.
Серверу совершенно безразлично, кто именно — пользователь или приложение — обращается к данным. Но в некоторых случаях стандартные роли не позволяют создавать защищенное окружение, которое может потребоваться для определенного приложения. В этом случае на помощь приходит роль для приложения, которая исключает неавторизованный доступ к данным вне рамок этого приложения. Такая роль имеет несколько принципиальных отличий от стандартных ролей:
Для нее не могут быть определены члены и она активизируется только из приложения для работающего в нем пользователя, что позволяет предоставить ему определенный набор прав, действующий только во время работы приложения.
Для активизации роли приложение должно передать серверу только пароль.
При активизации роли пользователь до момента выхода из приложения обладает только теми правами, которые описаны в этой роли, т.е. на время работы с приложением лишается всех своих прав.
Подключаясь к серверу, пользователь сразу же получает весь набор прав, ассоциированных с ним и с теми ролями, к которым он приписан. Совсем другая картина при подключении посредством приложения. В этом случае подключение возможно с использованием любого разрешенного идентификатора. Однако сразу же за этим клиентское приложение должно выполнить хранимую процедуру SP_SETAPPROLE, чтобы активизировать связанные с ролью права:
SP_SETAPPROLE { ‘имя_роли’, ‘пароль’}
Эта процедура может быть выполнена только как самостоятельная команда, т е. не может входить в другую хранимую процедуру или пользовательскою транзакцию. Несколько замечаний относительно роли для приложения:
Приложение обязано передать пароль для активизации роли выполнить хранимую процедуру SP_SETAPPROLE.
После активизации роли ее нельзя отключить от текущей базы данных до выхода пользователя из SQL Server.
Такая роль относится только к текущей базе данных и переключившись на другую базу, пользователь может выполнять над ней любые действия, в рамках имеющихся полномочий.
Помимо системной хранимой процедуры SP_SETAPPROLE, в SQL Server определены еще несколько специальных процедур:
SP_ADDAPPROLE — создает новую роль для приложения в текущей базе данных.
SP_DROPAPPROLE — удаляет существующую роль для приложения из текущей базы данных.
SP_APPROLEPASSOWRD — изменяет пароль роли для приложения в текущей базе данных.
Microsoft не разрешает сразу же назначать права для создаваемой роли (кнопка Permissions заблокирована). Тем не менее, их необходимо определить. Для этого после создания роли щелкните на ней правой кнопкой мыши и в контекстном меню выберите команду Properties. В результате на экране появится диалоговое окно Database Role Properties, в котором кнопка Permissions теперь доступна.
Процесс удаления роли с помощью SQL Server Enterprise Manager состоит практически из тех же самых шагов, что и процесс ее создания. Для удаления любой ненужной роли щелкните на ней правой кнопкой мыши и в контекстном меню выберите команду Delete. Поскольку возможны всякие случайности, SQL Server запросит подтверждение на удаление роли. Удалить роль вместе с ее ассоциированными пользователями нельзя, сначала надо удалить всех входящих в нее пользователей. Не все роли можно удалить. Например, для ролей Public или db_owner в контекстном меню вообще отсутствует команда Delete.
Удаление роли можно выполнить также с помощью инструкций Transact-SQL. Правда, здесь для удаления стандартной роли и роли для приложения должны использоваться различные хранимые процедуры:
SP_DROPROLE [@rolename =] ‘роль’
SP_DROPAPPROLE [@rolename ="] 'роль'.