Docsity
Docsity

Подготовься к экзаменам
Подготовься к экзаменам

Учись благодаря многочисленным ресурсам, которые есть на Docsity


Получи баллы для скачивания
Получи баллы для скачивания

Заработай баллы, помогая другим студентам, или приобретай их по тарифом Премиум


Руководства и советы
Руководства и советы

SQL Server 2000 реферат по информатике , Сочинения из Информатика

SQL Server 2000 реферат по информатике

Вид: Сочинения

2016/2017

Загружен 11.04.2017

refbank13214
refbank13214 🇷🇺

9 документы

1 / 107

Toggle sidebar

Сопутствующие документы


Частичный предварительный просмотр текста

Скачай SQL Server 2000 реферат по информатике и еще Сочинения в формате PDF Информатика только на Docsity! Введение. 2 Краткая характеристика редакции 8 SQL Server 2000 8 Developer Edition 9 Enterprise Evaluation Edition 9 Возможности редакций 10 Аппаратные требования 10 Взаимодействие с операционными системами 11 Взаимодействие с программным обеспечением Интернета 12 Планирование конфигурации сервера 13 Выбор сопоставления 14 Выбор метода установки 16 Автоматическая установка 18 Создание учетных записей 19 Выбор типа установки 23 Установка сетевых библиотек и протоколов 25 Установка сетевых протоколов в Windows 2000 25 Сетевая библиотека Описание 26 Установка и конфигурирование клиентов 27 Запуск, остановка и приостановка служб 29 Автоматический старт 30 Ручной запуск SQL Server 31 Запуск SQL Server в однопользовательском режиме 32 Запуск SQL Server с минимальными требованиями 32 Дополнительные режимы запуска 33 Приостановка SQL Server 34 Остановка SQL Server 34 Правила Безопасности 35 Общие правила разграничения доступа 36 Архитектура системы безопасности SQL Server 2000 37 Режимы аутентификации 37 Режим аутентификации SQL Server 38 Компоненты структуры безопасности 39 Пользователи 40 Роли сервера 42 Роли баз данных 42 Роли приложения 44 Защита данных 45 Шифрование данных 45 Ограничение доступа к файлам SQL Server 46 Права доступа 46 Права на доступ к объектам баз данных 47 Запрещение доступа 49 Создание и обслуживание баз данных 50 Использование неформатированных разделов 51 Увеличение базы данных 52 Использование Transact-SQL 53 Создание баз данных 53 Управление базами данных 57 Уменьшение размера базы данных 60 Управление свойствами базы данных 64 Присоединение и отсоединение базы данных 67 Передача прав владения 68 Изменение имени базы данных 69 Просмотр свойств базы данных 69 Удаление базы данных 76 Управление пользовательскими типами данных 76 Управление правилами 79 Управление умолчаниями 80 Список литературы 84 Введение. SQL Server 2000 является довольно сложным продуктом, работу с которым можно рассматривать с разных сторон. В частности, можно выделить два основных раздела работы с сервером, каждый из которых при ближайшем рассмотрении может быть легко разделен на более мелкие блоки: О администрирование; О программирование. Администрирование SQL Server 2000 в свою очередь можно разделить на две части: администрирование собственно сервера и 0 0 1 Fадминистрирование баз дан ных. Таким образом, администрирование 0 0 1 Fбаз данных представляет собой от дельную область работы с SQL Server 2000. Оно включает разработку структуры базы данных, ее реализацию, проектирование системы безопасности, создание пользователей базы данных, предоставление им прав доступа, создание 0 0 1 Fобъек тов и т. д. Кроме того, администратор базы данных должен 0 0 1 Fпериодически созда вать резервные копии, выполнять проверку целостности данных и следить за размером файлов как самой базы 0 0 1 Fданных, так и журнала транзакций. Указан ный список можно легко продолжить, так как мы перечислили далеко не все задачи администрирования. Первая задача, которая встает перед администратором или разработчиком, это проектирование структуры базы данных. Неверно спроектированная база данных впоследствии доставит много хлопот как 0 0 1 Fадминистратору, так и про граммистам и пользователям. Поэтому необходимо ответственно отнестись к разработке базы данных, сразу же 0 0 1 Fпродумывая различные варианты использо вания данных, а также возможности интеграции с дополнительными системами и доступа к данным с помощью различных технологий. Существует множество технологий и методов разработки баз данных, 0 0 1 Fрассмот рение которых достойно отдельной книги. Для более детального знакомства с теорией реляционных баз данных и построением баз данных с использованием ER-диаграмм необходимо 0 0 1 Fобратиться к специализированной литературе, посвя щенной этим 0 0 1 Fвопросам. Для понимания теории реляционных баз данных, кото рая является доминирующей в настоящее время, необходимо хорошее знание математики, так как в основе реляционной модели данных лежат 0 0 1 Fматематичес кие объекты. ... , , Замечу, что литературы на русском языке, посвященной теоретическим основам систем управления базами данных, очень мало. Основные труды по этой теме были написаны более 10 лет назад, но продолжают оставаться актуальными по сей день. В широком смысле слова база данных — это совокупность сведений о 0 0 1 Fконкрет ных объектах реального мира в какой-либо предметной 0 0 1 Fобласти. Под предмет ной областью принято понимать часть реального мира, подлежащего изучению для организации управления и, в конечном счете, автоматизации. Примером может служить предприятие, вуз и т. д. Создавая базу данных, пользователь стремится упорядочить 0 0 1 Fинформацию по различным признакам и быстро извле кать нужные сведения с произвольным сочетанием признаков. Сделать это можно, только если данные структурированы. База данных — поименованная совокупность взаимосвязанных данных, находящихся 0 0 1 Fпод управле нием системы управления базами данных (СУБД). СУБД — это комплекс программных и языковых средств, необходимых для создания баз данных, 0 0 1 Fин формация о заказах магазина. Заказчики берут напрокат фильмы, используя два носителя: видеоленту и компакт-диски. Обслуживание 0 0 1 Fзаказчиков выпол няют продавцы. Каждый продавец обслуживает многих заказчиков. Каждый продавец может пользоваться услугами нескольких магазинов и наоборот. Существует много копий одного и того же фильма и т. д. Поскольку сетевая БД может представлять непосредственно все виды связей, присущих данным соответствующей организации, по этим 0 0 1 Fданным можно переме щаться, исследовать и запрашивать их 0 0 1 Fвсевозможными способами, то есть сете вая модель не связана всего 0 0 1 Fлишь одной иерархией. Однако для того чтобы со ставить запрос к сетевой БД, необходимо достаточно глубоко вникнуть в ее структуру (иметь под рукой схему этой БД) и выработать механизм навигации по базе данных, что является существенным недостатком этой модели БД. О Реляционная модель данных. Основная идея реляционной модели 0 0 1 Fданных за ключается в том, чтобы представить любой набор данных в виде двумерной таблицы. В простейшем случае реляционная модель описывает единственную двумерную таблицу, но чаще всего эта модель 0 0 1 Fописывает структуру и взаи моотношения между несколькими различными таблицами. Итак, целью информационной системы является обработка данных об объектах реального мира, с учетом связей между объектами. В теории БД данные часто называют атрибутами, а объекты — сущностями. Объект, атрибут и связь — фундаментальные понятия ИС. Объект (или сущность) — это нечто существующее и различимое, то есть объектом можно назвать то «нечто», для которого существуют 0 0 1 Fназвание и спо соб отличать один подобный объект от другого. Например, каждая школа — это объект. Объектами являются также 0 0 1 Fчеловек, класс в школе, фирма, сплав, хи мическое соединение и т. д. 0 0 1 FОбъектами могут быть не только материальные пред меты, но и более абстрактные понятия, отражающие реальный мир. Например, события, регионы, произведения искусства; книги (не как полиграфическая 0 0 1 Fпро дукция, а как произведения), театральные постановки, кинофильмы; правовые нормы, философские теории и проч. Атрибут (или данное) — это некоторый показатель, который характеризует некий объект и принимает для конкретного экземпляра 0 0 1 Fобъекта некоторое чис ловое, текстовое или иное значение. 0 0 1 FИнформационная система оперирует на борами объектов, спроектированными применительно к данной предметной области, используя при этом конкретные значения атрибутов (данных) тех или иных объектах. Например, возьмем в качестве набора объектов классы в школе. Число учеников в классе — это данное, которое принимает числовое значение (у одного класса 28, у другого — 32). Название класса — это данное, принимающее текстовое значение (у одного — 10А, у другого — 9Б и т. д.). Атрибут некоторого набора объектов сам может быть набором объектов, 0 0 1 Fиме ющих собственные атрибуты. Например, атрибутом лица (как 0 0 1 Fэкземпляра набо ра объектов «Лица») является вуз, который это лицо окончило (МГУ, МИФИ и т. п.). С другой стороны, конкретный вуз — это экземпляр набора объектов «Вузы» и характеризуется множеством 0 0 1 Fданных: фамилией ректора, адресом, спе циализацией, числом студентов и т. д. Наконец, ректор в свою очередь является экземпляром набора объектов «Лица». Таким образом, возникает возможность установления связи между экземплярами объектов из разных наборов. Развитие реляционных баз данных началось в конце 60-х годов, когда 0 0 1 Fпо явились первые работы, в которых обсуждались возможности использования при проектировании баз данных привычных и 0 0 1 Fестественных способов представле ния данных — так называемых табличных даталогических моделей. Основоположником теории реляционных баз данных считается сотрудник фирмы IBM доктор Э. Кодд, опубликовавший 6 июня 1970 г. статью A Relational Model of Data for Large Shared Data Banks (Реляционная модель данных для больших коллективных банков 0 0 1 Fданных). В этой статье впервые был использо ван термин «реляционная 0 0 1 Fмодель данных», что и положило начало реляцион ным базам данных. Теория реляционных баз данных, разработанная в 70-х годах в США 0 0 1 Fдокто ром Э. Коддом, имеет под собой мощную математическую Основу, описывающую правила эффективной организации данных. 0 0 1 FРазработанная Э. Коддом теорети ческая база стала основой для разработки теории проектирования баз данных. Э. Кодд, будучи математиком по образованию, предложил использовать для обработки данных аппарат теории множеств (объединение, 0 0 1 Fпересечение, раз ность, декартово произведение). Он доказал, что любой набор данных можно представить в виде двумерных таблиц особого вида, известных в математике как «отношения». Реляционной считается такая база данных, в которой все данные 0 0 1 Fпредставле ны для пользователя в виде прямоугольных таблиц значений данных, и все операции над базой данных сводятся к манипуляциям с таблицами. Таблица состоит из столбцов (полей) и строк (записей); имеет имя, 0 4 4 3 0 4 3 D 0 4 3 8 0 4 3 A 0 4 3 0 0 4 3 B 0 4 4 C  ное внутри базы данных. Таблица отражает тип объекта реального 0 4 3 C 0 4 3 8 0 4 4 0 0 4 3 0 0 4 4 1 0 4 4 3 0 4 4 9 (  ность), а каждая ее строка— конкретный объект. Так, таблица Спортивная секция содержит сведения обо всех детях, занимающихся в данной спортивной секции, а ее строки представляют собой набор значений атрибутов 0 4 3 A 0 4 3 0 0 4 3 6 0 4 3 4 0 4 3 E 0 4 3 3 0 4 3 E 0 4 3 A 0 4 3 E 0 4 3 D  кретного ребенка. Каждый столбец таблицы — это совокупность 0 4 3 7 0 4 3 D 0 4 3 0 0 4 4 7 0 4 3 5 0 4 3 D 0 4 3 8 0 4 3 9 0 4 3 A 0 4 3 E 0 4 3 D 0 4 3 A  ретного атрибута объекта. Столбец Вес, например, представляет собой совокупность всех весовых категорий детей, занимающихся в секции. В столбце Пол могут содержаться только два различных значения: «муж.» и «жен.». Эти значения выбираются из множества всех возможных значений атрибута объекта, которое называется доменом (domain). Так, 0 0 1 Fзначения в столбце выбира ются из множества всех возможных весов детей. В самом общем виде домен определяется заданием некоторого базового' типа данных, к которому относятся элементы домена, и произвольного логического выражения, применяемого к элементам данных. Если при 0 0 1 Fвычислении логическо го условия относительно элемента данных в 0 0 1 Fрезультате получено значение «исти на», то этот элемент принадлежит домену. В простейшем случае домен определяется как допустимое потенциальное множество значений одного типа. Например, 0 0 1 Fсо вокупность дат рождения всех сотрудников составляет «домен дат рождения», а имена всех сотрудников составляют «домен имен 0 0 1 Fсотрудников». Домен дат рож дения имеет тип данных, позволяющий 0 0 1 Fхранить информацию о моментах време ни, а домен имен сотрудников должен иметь символьный тип данных. В один домен могут входить значения из нескольких столбцов, объединенных, помимо одинакового типа данных, еще и логически. Например, домен может состоять из столбца с датой пйступления на работу и столбца с датой увольнения. Но в этот домен нельзя включить 0 0 1 Fстолбец с датой рожде ния, так как дата поступления или увольнения с работы не связана с датой рождения. Если два значения берутся из одного и того же домена, т,о можно выполнять сравнение этих двух значений. Например, если два значения взяты из .домена дат рождения, то можно сравнить их и определить, кто из сотрудников старше. Если же значения берутся из разных доменов, то их сравнение не допускается, так как, по всей вероятности, оно не имеет смысла. Например, из сравнения имени и даты рождения сотрудника ничего определенного не выйдет. В большинстве систем управления реляционными базами данных понятие домена не реализовано.Каждый элемент данных в отношении может быть определен с указанием его адреса в формате A[i , j], где А — элемент данных, i — строка отношений, j — номер атрибута отношения. Количество атрибутов в отношении определяет его порядок (или степень). Порядок отношения, приведенного в табл., равен 4. ID сотрудника Имя сотрудника № паспорта Дата рождения 12576893 Мамаев Евгений 357934 ХИ-БА 13.08.78 56387934 Шкарина Лилия 463865 XIV-БА 07.10.72 85973002 Салихов Тимур 653473 Х1И-БА 17.12.80 24856892 Волков Иван 395789 XVII-БА 05.05.79 76578243 Мамаев Сергей 312642 XVII-БА 21.09.80 Множество значений А [ i , j ] при постоянном i и всех возможных j 0 0 1 Fобразу ют кортеж (или попросту строку таблицы). Количество всех 0 0 1 Fкортежей в отно шении определяет его мощность, или кардинальное число. Мощность отношения в табл. 2.2 равна 5. Мощность отношения, 0 0 1 Fв отличие от порядка отношения, мо жет со временем меняться. 0 0 1 FСовокупность всех кортежей образует тело отноше ния (или собственно таблицу). Поскольку отношения являются математическими множествами, которые по определению не могут содержать совпадающих элементов, никакие два кортежа в отношении не могут быть дубликатами друг друга в любой момент времени. Каждый столбец (поле) имеет имя, которое обычно записывается в верхней части таблицы. При проектировании таблиц в рамках О Windows NT 4.0 Server; О Microsoft Windows 2000 DataCenter О Windows 2000 Advanced Server; О Windows 2000 Server; О Microsoft Windows NT 4.0 Server, Enterprise Edition. Personal Edition Используются в основном теми, кто не имеет сетевых возможностей, но запускает приложения, требующие SQL Кроме того, используется для одиночного приложения, требующего локального хранения данных на клиентском компьютере. Personal Edition поддерживается следующими операционными системами: О Microsoft Windows 98; О Windows NT 4.0 Workstation; О Windows NT 4.0 Server; О Windows 2000 Professional; О Microsoft Windows 2000 DataCenter; О Windows 2000 Advanced Server; О Windows 2000 Server; О Microsoft Windows NT 4.0 Server, Enterprise Edition. Developer Edition Используется для разработки приложений с SQL Server в качестве хранилища данных. Хотя Developer Edition поддерживает все возможности Enterprise Edition, которые позволяют разработчикам писать и тестировать приложения, Developer Edition лицензируется только как система разработки и тестирования, а не как промышленный сервер. Developer Edition поддерживается следующими операционными системами: О Microsoft Windows 98 (используя Desktop Engine); О Windows NT 4.0 Workstation; О Windows NT 4.0 Server; О Windows 2000 Professional; О Microsoft Windows 2000 DataCenter; О Windows 2000 Advanced Server; О Windows 2000 Server; О Microsoft Windows NT® 4.0 Server, Enterprise Edition. Desktop Engine Edition / Используется независимыми разработчиками для встраивания хранилищ данных в разрабатываемые системы. Desktop Engine включает 0 0 1 Fв себя только инструмен ты обработки пользовательских запросов (engine). В эту редакцию не входят: О графические инструменты администрирования (при необходимости 0 0 1 Fдля ад министрирования этой редакции можно использовать 0 0 1 Fграфические инстру менты любой другой редакции); О инструменты электронной документации Books Online; О инструменты поддержки репликации сведением; О примеры кода (code samples); О библиотеки разработки. Хотя большей частью редакция Desktop Engine обеспечивает ту же функцио нальность, что и другие редакции, но имеет некоторые ограничения. В частно сти, не реализовано распараллеливание запросов, индексирование представлений и некоторые другие функции, характерные для больших промышленных серв ров. Кроме того, если на сервере одновременно выполняется более пяти паке тов команд, то производительность их выполнения снижается. Отличительно^ чертой редакции Desktop Engine является также и то, что она не требует клиен ских лицензий доступа (Client Access Licenses, CAL). Все описанные характе ристики делают SQL Server 2000 Desktop Engine идеальным выбором при со| здании систем с встроенными хранилищами данных и при работе с даннык в автономном режиме (off-line). Редакция Desktop Engine поставляется в виде модулей Windows Installer, ко торые могут быть включены в установочный пакет. SQL Server 2000 Desktojf Engine поддерживает все интерфейсы API, доступные в других редакциях. Эт API также могут быть использованы для администрирования сервера. Desktop Engine поддерживается следующими операционными системами: \ О Microsoft Windows 98; О Windows NT 4.0 Workstation; О Windows NT 4.0 Server; О Windows 2000 Professional; О Microsoft Windows 2000 DataCenter; О Window's 2000 Advanced Server; О Windows 2000 Server; О Microsoft Windows NT 4.0 Server, Enterprise Edition. Windows CE Edition Используется как хранилище данных на устройствах Microsoft Windows g| Благодаря поддержке репликации допускается копирование данных с SQL I ver 2000 Enterprise и Standard Editions. Windows CE Edition поддерживается Microsoft Windows CE. Enterprise Evaluation Edition Это полнофункциональная версия SQL Server Enterprise Edition. Однако пр назначена она только для знакомства с данным продуктом, так как срок работы" с ней истекает через 120 дней после установки. Распространяется редакция Enterprise Evaluation Edition свободно и доступна для загрузки из Интернета. Enterprise Evaluation Edition поддерживается следующими операционными системами: О Windows NT 4.0 Server; О Microsoft Windows 2000 DataCenter; О Windows 2000 Advanced Server; О Windows 2000 Server; О Microsoft Windows NT 4.0 Server, Enterprise Edition. Возможности редакций Клиентское программное обеспечение для всех редакций SQL Server 2000, за исключением SQL Server Windows CE Edition, запускается на любых версиях Microsoft Windows NT, Microsoft Windows 2000 и Microsoft Windows 0 01 F95/98. Од нако возможность установки серверной части SQL Server 2000, отвечающей за выполнение пользовательских запросов, зависит от используемой редакции и операционной системы. Так, серверная часть SQL Server 2000 Enterprise Edition не может быть установлена на Windows 2000 Professional, Windows NT Workstation или Windows 98. Тем не менее компакт-диск с SQL Server 2000 Enterprise Edition обеспечивает установку клиентского программного 0 0 1 Fобеспече ния на любой из этих операционных систем. В табл. 7.1. обобщена информация о поддержке той или иной редакцией различных механизмов SQL Server 2000, связанных с использованием баз данных (БД). Подготовка к установке Предыдущие разделы были посвящены рассмотрению различных редакций SQL Server 2000. Когда выбор редакции остался в прошлом и у вас имеется компакт-диск с конкретной редакцией, можно приступать к установке SQL Server 2000. Однако прежде чем начать 0 0 1 Fнепосредственно установку сервера, необходимо вы полнить некоторые подготовительные операции, которые помогут вам избежать неприятностей в ходе установки. В частности, прежде всего 0 0 1 Fнеобходимо убе диться, что на вашем компьютере установлена операционная система, которая необходима для функционирования той или иной редакции SQL Server 2000. Кроме того, следует 0 0 1 Fпроверить, имеется ли на жестком диске достаточно сво бодного пространства для установки собственно сервера, а также 0 0 1 Fвспомогатель ных и клиентских компонентов. В этом разделе будут рассмотрены основные требования, 0 0 1 Fвыдвигаемые мас тером установки SQL Server 2000, а также некоторые общие рекомендации по выполнению собственно установки. Непосредственно процесс подготовки к установке SQL Server состоит из трех этапов: О проверка соответствия аппаратным требованиям; О установка необходимого программного обеспечения; О конфигурирование учетных записей для служб MSSQLServer и SQLServer-Agent. Прежде чем приступать к установке, обязательно пройдите все три этапа. В этом случае у вас не возникнет сложностей в процессе установки, не придется прерывать ее и возвращаться назад! Аппаратные требования Для установки инструментария и библиотек Microsoft SQL Server 2000 компьютер должен отвечать минимальным требованиям к 0 0 1 Fаппаратному обеспечению ком пьютера (табл. 7.3). Цифры, 0 0 1 Fприведенные в таблице, практически не отличают ся от аналогичных показателей для SQL Server 7.0. Это связано с тем, что ядро SQL Server 2000 осталось в основном тем же, что и в SQL Server 7.0. Таблица. Требования к аппаратной части Аппаратная часть_Минимальные требования_ Компьютер Intel или совместимый с ним. Pentium 166 MHz или выше, Pentium PRO, Pentium III или процессор, требующийся для вашей операционной системы (с учетом редакции SQL Server) Память (RAM) Enterprise Edition: 64 Мбайт Standard Edition: 32 Мбайт Пространство SQL Server 2000: жесткого диска полная установка: 180 Мбайт; типичная установка: 170 Мбайт; минимальная установка: 65 Мбайт; установка только утилит администрирования: 90 Мбайт; +50 Мбайт: установка OLAP; ______________+12 Мбайт: установка English Query________________________ Для успешной работы рекомендуется к вышеперечисленным 0 0 1 Fтребованиям доба вить размеры пользовательских баз данных, а Взаимодействие с сетевым программным обеспечением Все современные операционные системы семейства Windows имеют 0 0 1 Fвстроен ную поддержку возможности работы с сетью. В большинстве случаев никакое дополнительное обеспечение не требуется. Исключением являются протоколы Banyan VINES или AppleTalk ADSP, 0 01 Fработа с которыми обеспечивается про дуктами третьих производителей. Если планируется использование SQL Server 2000 в качестве 0 0 1 Fкорпоративного сер вера баз данных, к которолгу предполагается обращение множества пользователей сети, то в операционной системе необходимо установить соответствующие сетевые 0 01 Fпротоко лы. Мастер установки SQL Server 2000 не выполняет установку сетевых протоколов, поэтому эта часть работы должна быть выполнена пользователем. SQL Server 0 01 F2000 под держивает все основные протоколы Windows 2000: NetBEUI, IPX/SPX и TCP/IP. Кроме того, возможна работа по протоколам AppleTalk ADSP, Banyan VINES и некоторым другим редко используемым протоколам. Установка сетевых протоколов еще не дает возможности работать с SQL Server 2000. Для обеспечения этой возможности необходимо 0 0 1 Fналичие программ ного интерфейса, который бы позволял работать с SQL Server 0 01 F2000. Таким ин терфейсом являются так называемые сетевые библиотеки (network libraries). Эти библиотеки поставляются в составе SQL Server 0 01 F2000 и автоматически устанав ливаются в операционной системе при установке сервера. Более подробно архи- тектура и конфигурирование сетевых библиотек будут рассмотрены далее в этой главе в разделе «Установка сетевых библиотек и протоколов». В качестве клиентов SQL Server 2000 могут выступать не только 0 0 1 Fприложе ния, работающие под управлением операционных систем семейства Windows, но и приложения операционных систем Apple Macintosh, OS/2, UNIX 0 01 Fи т. д. Одна ко в настоящее время Microsoft не предоставляет драйверов ODBC под UNIX, хотя связь с клиентами UNIX 0 01 Fвозможна. Указанные драйверы могут быть раз работаны независимыми производителями. Взаимодействие с продуктами Microsoft Для взаимодействия Microsoft Access 2000 с SQL Server 2000 0 0 1 Fнеобходимо уста новить Microsoft Office 2000 Service Release 1 или Access 2000 Service Release 1. Только в этом случае вы сможете 0 0 1 Fобращаться к диаграммам базы данных, хра нимым процедурам, 0 0 1 Fданным о структуре таблиц и представлений, однако ника ких внесенных пользователем изменений не сохраняется. При работе с Microsoft Visual Studio® 6.0, вы не сможете получить доступ к диаграммам базы данных, хранимым процедурам, данным о структуре таблиц и представлений в SQL Server 2000. Хотя установка Visual Studio 6.0 Service Pack 4 и позволит выполнять изменения, все же сохранить их не удастся. Планирование конфигурации сервера Если в вашей организации предполагается наличие нескольких серверов баз данных, взаимодействующих между собой и 0 0 1 Fобменивающихся данными, то не обходимо разработать единую конфигурацию, которая будет реализована на всех серверах SQL Server вашего предприятия. Существует несколько параметров 0 0 1 Fуста новки сервера, которые существенно влияют на функционирование SQL Server и не могут быть изменены в процессе работы. В SQL Server 0 01 F7.0 к ним отно сились следующие: О набор символов (character set); О сопоставление Unicode (Unicode collation); О порядок сортировки (sort order). Чтобы изменить любую из этих настроек, необходимо было 0 0 1 Fперестроить сис темную базу данных master с помощью утилиты rebuildm.exe, которая позволяет изменить порядок сортировки, набор символов и сопоставление Unicode. Однако при выполнении подобного перестроения теряется любая информация, накопленная на сервере. В этом плане перестроение базы данных master можно 0 0 1 Fсравнить с уда лением и повторной установкой сервера. Если же было необходимо сохранить пользовательские базы данных и 0 0 1 Fобъекты, приходилось сначала создавать сцена рии (script), описывающие создание всех объектов, а затем копировать данные, 0 0 1 Fис пользуя возможности служб преобразования данных (Data Transformation Services, DTS) или утилиту массового копирования (bulk copy program, bcp). В SQL Server 2000 больше не нужно отдельно определять кодовую страницу, используемую для символьных данных, порядок 0 0 1 Fсортировки символьных дан ных и сопоставления для данных Unicode. Вместо этого вы просто указываете требуемые название сопоставления и сортировку. Физическое хранение символьных строк и операции их сравнения в SQL Server 2000 зависят от сопоставления. Сопоставление определяет 0 0 1 Fдвоичные об разцы, которые представляют каждый символ, и правила, по которым символы сортируются и сравниваются. При работе с SQL Server 0 01 F7.0 эти параметры зада вались при установке 0 0 1 Fсервера и были едины для всех объектов и данных, имею щихся в базах данных этого сервера. В SQL Server 2000 значение сопоставления, указанное при 0 0 1 Fустановке серве ра, рассматривается только как значение по умолчанию, которое используется при создании всех объектов. 0 0 1 FРазрешается создание разных сопоставлений в од ной и той же базе 0 0 1 Fданных одного и того же сервера объектов. Более того, в од ной таблице могут иметься столбцы, использующие различные сопоставления. SQL Server 2000 поддерживает два вида сопоставлений. О Сопоставление Windows (Windows Collation). Этот вид 0 0 1 Fсопоставления опреде ляет набор правил для хранения и 0 0 1 Fсортировки символьных данных, основан ных на правилах, определенных для операционной системы Windows. О Сопоставление SQL (SQL Collation). Этот вид сопоставления 0 0 1 Fобеспечивает со вместимость с более ранними версиями Microsoft SQL Server. Каждое сопоставление SQL включает в себя следующую информацию. О Порядок сортировки для данных Unicode (nchar, nvarchar и ntext). 0 0 1 FПоря док сортировки определяет последовательность, в которой 0 0 1 Fсортируются сим волы, и то, как оцениваются символы при операциях сравнения. О Порядок сортировки для символьных данных, не относящихся к Unicode (char, varchar-и text). О Кодовая страница, используемая для сортировки символьных 0 0 1 Fданных, не от носящихся к Unicode. Чтобы при установке произвести изменения заданных по 0 0 1 Fумолчанию пара метров настройки сопоставления, используйте окно Collation Settings (параметры сопоставления). Вариант Collation Designator 0 01 F(назначение сопоставления) обеспечи вает настройку параметров сопоставления Windows, а вариант SQL Collations (сопоставление SQL) — настройку параметров сопоставления, совместимых с SQL Server 7.0, SQL Server 6.5 или более ранними версиями. Старайтесь настроить параметры сопоставления так, как это необходимо для дальнейшей работы, сразу во время установки. Хотя вы и сможете изменить настройки сопоставления после 0 01 Fвыполне ния установки, при этом вам придется перестраивать базы данных и загружать данные. Выбор сопоставления На одном из этапов установки в окне Collation Settings (параметры 0 0 1 Fсопоставле ния) мастер установки SQL Server 2000 предлагает выбрать сопоставление (collation), которое будет использоваться по умолчанию на сервере. Этот выбор осуществляется с помощью раскрывающегося списка с вариантами допустимых сопоставлений. Например. О Вариант Latinl_General предназначен для американизированного английского набора символов (кодовая страница 1252). О Вариант Modern_Spanish предназначен для всех разновидностей испанског языка, в котором используется тот же набор символов, что и в английское (кодовая страница 1252). О Вариант Arabic предназначен для всех разновидностей арабского языка довая страница 1256). О Для России по умолчанию предлагается использовать сопоставление Windows, называющееся Cyrillic_General, тем не 0 0 1 Fменее можно указать любое другое со поставление. Также можно выбрать сопоставление SQL. 0 01 FВ этом случае в рас поряжении пользователя имеется множество различных сопоставлений, каждое из которых имеет свои отличительные характеристики. Сопоставления для России используют набор символов 1251, то есть оканчиваются на строку for use the 1251 (Cyrillic) Character Set. На уровне сервера указанные сопоставления относятся к семейству сопоставлений SQL_Latinl_General. В частности, при выборе сопоставления Windows с именем Cyrillic_General на 0 0 1 Fуровне сервера бу дет использоваться сопоставление SQL_Latinl_General_Cpl_CI_AS. 0 01 FЭто сопостав ление устроит большинство пользователей. В частности, при сравнении 0 0 1 Fсим волов не учитывается регистр. Выбор порядка сортировки Сопоставление Windows определяет только набор символов, который 0 0 1 Fбудет до ступен пользователям. Однако собственно сопоставление 0 0 1 Fне определяет прави ла сравнения и сортировки символьных 0 0 1 Fданных. Поэтому эти параметры долж ны быть сконфигурированы отдельно. Для этого в окне Collation Settings (параметры сопоставления) используется набор флажков Sort Order (порядок сортировки), с помощью которых разрешается тот или иной метод сортировки. В табл. 7.5 указано назначение флажков. Windows NT и Windows 2000 предоставляют нам поистине 0 0 1 Fпотрясающие воз можности, позволяя не только производить 0 0 1 Fудаленное администрирование ком пьютеров домена, но и устанавливать программное обеспечение на компьютере, находящемся в соседней комнате, не вставая из-за рабочего стола. Удаленная установка запускается также программой Setupsql.exe 0 0 1 Fна том ком пьютере, с которого производится удаленная установка. 0 0 1 FОднако кроме данных, не обходимых при локальной установке, от 0 0 1 Fвас потребуется ввести еще и дополни тельную информацию — это и понятно, так как в этом случае используется еще и сеть: О Username (имя пользователя) — имя пользователя, учетная запись которого будет использована на удаленном компьютере для выполнения установки SQL Server 2000; О Password (пароль) — пароль пользователя; О Domain (домен) — имя домена, к которому принадлежит учетная 0 0 1 Fзапись пользо вателя; Нужно указать пользователя, имеющего административные привилегии на удаленном компьютере, на который предполагается установить SQL Server 2000. В принципе, это самостоятельная учетная запись, и ее не следует путать с той учетной записью, под которой вы вошли в систему, и с теми учетными записями, которые будут использованы для работы служб SQL Server. Впрочем, обе этих 0 0 1 Fучетных запи си могут быть с успехом использованы для запуска программы установки. О Target Computer (целевой компьютер) — имя удаленного 0 0 1 Fкомпьютера, на кото рый будет производиться установка SQL Server 2000; О Target Path (UNC) (целевой путь в формате UNC) — полное описание пути в формате UNC к папке, в которую планируется установить SQL Server'. О Setup Source Files (установочные файлы) — полный путь в формате UNC 0 01 Fк уста новочным файлам SQL Server 2000 в сети. После того как будут введена информация для указанных выше параметров, последующая работа мастера установки весьма 0 0 1 Fнапоминает локальную установ ку. Мастер собирает информацию 0 0 1 Fобо всех параметрах установки, таких как со поставление, имена и пароли учетных записей для запуска служб SQL Server 2000, установочная папка для самого сервера и папка для хранения баз 0 0 1 Fданных, спи сок устанавливаемых компонентов и т. д. После того как вся необходимая для установки SQL Server 2000 информация введена, 0 0 1 Fона, как и при выполнении ло кальной установки, сохраняется в файле Setup.iss. Однако собственно установки сервера при этом мастер установки не выполняет. Он лишь запускает на 0 01 Fуда ленном компьютере программу remsetup.exe, которая и будет выполнять установку SQL Server 2000. На этом работа мастера установки Installation Wizard 0 01 F(програм мы setup.sql) заканчивается. Для удаленной установки можно использовать готовый файл Setup.iss, сгенерированный ранее при выполнении локальной установки. При необходимости в этот файл можно внести некоторые 0 0 1 Fизме нения. Для этого можно использовать обычный текстовый редактор. На удаленном компьютере программа remsetup.exe копирует 0 0 1 Fфайлы, необхо димые для установки, в сетевую папку Admin$, в том числе и файл Setup.iss, из которого считывает данные об установке. После этого начинается собственно установка SQL Server 2000. Удаленная установка позволяет установить SQL Server на большое 0 0 1 Fколиче ство удаленных компьютеров с одного центрального 0 0 1 Fкомпьютера. Для того что бы удаленная установка прошла успешно, мастеру установки необходимо иметь следующие права: О на локальном компьютере — права на запуск мастера установки и 0 0 1 Fсохране ние файла Setup.iss; О на удаленном компьютере — права доступа с административными 0 0 1 Fполномо чиями. Не обязательно, чтобы пользователь, запускающий программу 0 0 1 Fустановки, имел права администра тора на удаленном компьютере. 0 0 1 FМастер установки позволяет явно указать учетную запись, кото рая будет использована на удаленном компьютере для запуска программы Remsetup.exe. Кроме того, подойдет любая учетная запись, в том числе учетная запись пользователя, запускающего программу Setupsqi.exe на локальном компьютере. Также может быть 0 0 1 Fиспользована одна из учет ных записей, сконфигурированных для запуска служб SQL Server 2000. Единственным требованием является наличие необходимых прав доступа. Выполнение удаленной установки возможно только в том случае, если локальный и удаленный компьютеры работают под управлением операционной системы Windows NT или Windows 2000. Автоматическая установка Если вам необходимо выполнить аналогичные установки SQL Server 2000 на нескольких компьютерах, вы можете реализовать автоматическую установку,которая позволяет не вводить данные вручную, а использовать специальный файл, который содержит всю информацию о конфигурации SQL Server. Кром того, автоматическая установка удобна для повторной установки SQL Server 2000 с теми же параметрами конфигурации, что и при первой установке. Автоматическая установка может быть выполнена двумя способами: О с использованием Microsoft Systems Management Server (SMS); О с использованием файла автоматической установки Setup.iss. Использование Microsoft Systems Management Server В распределенной гетерогенной сети масштаба предприятия установка 0 0 1 Fи поддер жка программных продуктов, а также управление ими 0 0 1 Fстановятся для админист раторов постоянной головной болью. 0 0 1 FАдминистративные потери, связанные с не обходимостью следить за состоянием десятков программ, синхронизировать версии программ, 0 0 1 Fсвоевременно обновлять их, собирать аналитическую инфор мацию о работе сети, инвентаризовать сведения об установленном 0 0 1 Fпрограмм ном обеспечении, с ростом размера предприятия возрастают в геометрической прогрессии. Microsoft System Management Server — сервер управления системой 0 0 1 F— явля ется ключевым звеном пакета Microsoft BackOffice, позволяя 0 0 1 Fсущественно об легчить жизнь системных администраторов. Одной из возможностей сервера SMS является его способность выполнять 0 0 1 Fтиповую установку программного обеспе чения на большое число 0 0 1 Fкомпьютеров сети с минимальным участием пользова теля. Вы можете использовать Microsoft System Management Server версии 1.2 или выше для автоматической установки Microsoft SQL Server 2000 на множестве компьютеров сети предприятия. Компакт-диск с SQL Server поставляется с файлом Smssql.pdf, 0 0 1 Fкоторый авто матически создает установочный пакет SMS. После этого 0 0 1 Fсервер можно устанав ливать с помощью SMS на многих компьютерах. Файлы .pdf 0 01 Fпредставляют со бой обычные текстовые файлы, в которых содержится информация о действиях, которые должны быть выполнены Microsoft SMS. Файл Smssql.pdf 0 01 Fсодержит ко манды для запуска bat- 0 0 1 Fфайлов, поставляемых на компакт-диске с дистрибути вом SQL Server 2000. Файл smscli.bat 0 01 Fпредназначен для выполнения автомати ческой установки утилит администрирования SQL Server 2000 с использованием пакета SMS. Файл smssqins.bat предназначен для 0 0 1 Fвыполнения обычной установ ки утилит администрирования SQL Server 2000 с использованием пакета SMS. При необходимости пользователь может скопировать файл smssql.pdf и внести в него необходимые изменения. Использование файла автоматической установки Автоматическая установка SQL Server может быть произведена с 0 0 1 Fпомощью спе циального файла-сценария, содержащего описание всех параметров, которые пользователь должен указать в процессе установки, избавляя его тем самым от личного присутствия при 0 0 1 Fустановке. Автоматическая установка также исполь зуется при удаленной установке. Создание файла автоматотеской установки Setup.iss возможно одним 0 0 1 Fиз двух спосо бов. Во-первых, можно использовать для этого любой текстовый редактор, например Notepad. Второй альтернативой будет запуск программы Setupsql.exe с ключом k=Rc. Этот ключ указывает программе установки сначала собрать все сведения о конфигурации, а затем начать копирование файлов. Когда сбор сведений заканчивается, появляется диалоговое окно, предупреждающее о начале копирования файлов. Если щелкнуть на кнопке Cancel (отмена), то программа 0 0 1 Fустановки сохранит все введенные данные в пап ке операционной системы в файле Setup.iss. Необходимо лишь добавить секции [SdStartCopy-О] и [SdFinish-0] вконец файла Файл Setup.iss также создается и в случае обычной установки. При создании файла автоматической установки следует учитывать, что 0 0 1 Fвозможность его исполь зования для установки SQL Server на 0 0 1 Fмножество компьютеров зависит от конк ретной ситуации. Например, если при создании файла Setup.iss вы использовали локальную учетную запись, а на удаленном компьютере не 0 0 1 Fсуществует пользо вателя с таким же именем и паролем, установка 0 0 1 Fможет не удаться. Конфигура ция дисков на компьютерах также должна быть одинаковой. SQL Server 2000 поставляется с пятью исполняемыми bat-файлами: О sqlcli.bat — устанавливает только средства управления SQL Server 0 0 1 F2000, исполь зует в своей работе файл автоматической установки sqlcli.iss; О sqlins.bat — выполняет типичную установку, устанавливая локальную учетную запись системы для запуска служб, использует файл sqlins.iss; О sqlcst.bat — выполняет заказную установку всех компонентов, администратора локальной операционной системы, включив их в группу Administrators. Это даст возможность SQL Server 2000 0 0 1 Fперезапускать сер вер и поможет избежать некоторых проблем с 0 0 1 Fавтоматическим выполнением за даний (jobs). Однако такой подход открывает потенциальную возможность взлома системы с использованием SQL Server 2000. Если вы хотите максимально 0 0 1 Fобез опасить систему, то лучше потратить некоторое время на конфигурирование прав доступа, не предоставляя учетной записи административных прав. Независимо от того, под какой учетной записью предполагается запуск служб SQL Server 2000, необходимо убедиться в том, что эта 0 0 1 Fучетная запись имеет сле дующие права: О доступ и изменение файлов в папке \Program Files\Microsoft SQL Server\Mssql; О доступ и изменение файлов баз данных — mdf, ndf и Idf; О чтение и запись следующих ключей реестра: * HKEY_LOCAL_MACHINE\Software\Microsoft \MSSQLServer; » HKEY_LOCAL_MACHINE\System\CurrentControl set \Services \MSSQLServer. . Если свойства запуска служб SQL Server 2000 сконфигурированы некорректно, то впоследствии их можно изменить с помощью утилиты Services (службы) из окна Control Panel (панель управления) или с помощью интерфейса Enterprise Manager Во всех случаях, требующих наличия сети, необходимо использовать учетную запись пользователя в домене. Кроме того, если предполагается репликация, то рекомендуется использовать на всех серверах одну и ту же учетную запись пользователя в домене для запуска служб SQL Server 2000. Это гарантирует, что не возникнет никаких конфликтов разрешений на доступ к ресурсам. При конфигурировании репликации рекомендуется использовать одну и ту 0 01 Fже учетную запись пользо вателя для издателя и подписчика, чтобы избежать проблем с разграничением доступа. Основным компонентом SQL Server 2000 является служба MSSQLServer. Все остальные компоненты (SQLServerAgent, Microsoft Search и MSDTC) 0 01 Fустанав ливают соединение с MSSQLServer. При этом учетные записи, под которыми стартуют службы SQLServerAgent и MSDTC, должны иметь соответствующие права на самом сервере. Для 0 0 1 Fэтого необходимо назначить соответствующим учет ным записям встроенную роль сервера (fixed server role) Sysadmin. Служба Microsoft Search может стартовать только под локальной учетной записью системы. Для установления соединения со службой MSSQLServer она использует имя и пароль учетнбй записи, под которой стартует служба MSSQLServer. Как уже говорилось выше, каждая служба SQL Server 2000 может стартовать под собственной учетной записью. Но если нет особых на то причин, то для того чтобы избежать проблем с правами доступа, 0 0 1 Fрекомендуется запускать все служ бы под одной учетной записью. Также можно предоставить учетным записям служб права администратора локальной операционной системы, включив их в группу Administrators. Это даст возможность SQL Server 2000 0 0 1 Fперезапускать сер вер и поможет избежать некоторых проблем с 0 0 1 Fавтоматическим выполнением за даний Gobs). Однако такой подход открывает потенциальную возможность взлома системы с использованием SQL Server 2000. Если вы хотите максимально 0 0 1 Fобез опасить систему, то лучше потратить некоторое время на конфигурирование прав доступа, не предоставляя учетной записи административных прав. Независимо от того, под какой учетной записью предполагается запуск служб SQL Server 2000, необходимо убедиться в том, что эта 0 0 1 Fучетная запись имеет сле дующие права: О доступ и изменение файлов в папке \Program Files\Microsoft SQL Server\Mssql; О доступ и изменение файлов баз данных — mdf, ndf и Idf; О чтение и запись следующих ключей реестра: « HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer; » HKEY_LOCAL_MACHINE\System\CurrentControlset\Services \MSSQLServer. Если свойства запуска служб SQL Server 2000 сконфигурированы некорректно, то впоследствии их можно изменить с помощью утилиты Services (службы) из окна Control Panel (панель управления) или с помощью интерфейса Enterprise Manager. Создание учетных записей в Windows 2000 Создание учетных записей в Windows 2000 отличается от создания учетных записей в Windows NT 4.0. Для управления учетными записями 0 0 1 Fпользовате лей домена Windows 2000 используется оснастка (в терминологии Windows NT -утилита) Active Directory Users and Computers. 0 01 FКогда же выполняется конфи гурирование учетных записей 0 0 1 Fлокальных пользователей, то используется ос настка Computer Management 0 01 F(рис. 7.4). В этом разделе будет рассмотрено со здание учетных записей для локальных пользователей Windows 2000. Создание пользователей домена отличается лишь тем, что требуется иная утилита и ввод несколько большего количества информации о пользователе. Однако мы не будем рассматривать конфигурирование дополнительных 0 0 1 Fсведений о пользо вателе, таких как адрес его электронной почты, 0 0 1 Fпрофиль, возможность исполь зования RAS и т. д. При работе с оснасткой Computer Management информация о локальных пользователях хранится в папке System Tools\Local Users and Groups\Users. 0 01 FПри вы боре в левой части окна этой папки в правой части будет отображен список всех пользователей, созданных на выбранном для администрирования компьютере. Для создания нового пользователя необходимо в контекстном меню папки Users 0 01 Fвы брать пункт New User (новый пользователь). В ответ откроется одноименное 0 0 1 Fди алоговое окно (рис. 7.5), с помощью которого необходимо указать 0 0 1 Fосновные све дения о создаваемой учетной записи. Если компьютер, на который предполагается установить SQL Server 2000, является контроллером домена Windows 2000, то использование 0 0 1 Fлокальных учетных записей пользователей на этом ком пьютере невозможно, поэтому соответствующие пункты оснастки Computer Management будут недоступны. Рассмотрим назначение элементов управления, имеющихся в окне New User (новый пользователь). О User name (имя пользователя). Имя учетной записи, которое будет 0 0 1 Fиспользо ваться при регистрации пользователя в домене. Это имя 0 0 1 Fможет быть произ вольным и не всегда отражать имя самого пользователя. О Full name (полное имя). В этом поле указывается полное имя 0 0 1 Fвладельца учет ной записи. О Description (описание). Это поле предназначено для небольшого комментария, который помогает идентифицировать учетную запись 0 0 1 Fили ее владельца. До пускается краткая запись любых других сведений. О Password (пароль). В этом поле указывается пароль, под которым 0 0 1 Fпользовате лю будет разрешаться вход в домен. О Conform Password (подтверждение пароля). В этом поле необходимо повторить тот же пароль, что и в предыдущем поле. Это делается, чтобы гарантировать ввод правильного пароля и избежать ошибок. О User must change password at next logon (пользователь должен сменить 0 0 1 Fпароль при сле дующем входе в систему). Установив этот флажок, 0 0 1 Fадминистратор тем самым по требует от пользователя смены пароля при следующем входе в домен. О User cannot change password (пользователь не должен менять пароль). Если администратор установит для пользователя этот флажок, то пользователь не сможет самостоятельно сменить пароль и будет вынужден обратиться к администратору. Такая ситуация необходима, 0 0 1 Fесли кроме этого пользовате ля под тем же самым паролем работает 0 0 1 Fеще кто-либо. В этом случае адми нистратор сможет известить 0 0 1 Fвторого пользователя о том, что пароль был из менен. О Password never expires (срок действия пароля не истекает). Установка этого флажка позволяет избежать частой смены пароля пользователем. О Account disabled (блокирование учетной записи). При установке этого флажка учетная запись блокируется и не допускает регистрации в 0 0 1 Fдомене ни хозяи на учетной записи, ни кого-либо еще. Эта возможность часто используется, если предполагается длительное отсутствие пользователя на рабочем месте. Такой подход поможет избежать несанкционированного доступа к ресурсам. Чтобы использовать учетные записи пользователей Windows 2000 для запуска служб Server 2000, как и при конфигурировании учетных записей Windows NT 4.0, им необходимо предоставить дополнительные права. В Windows 2000 0 0 1 Fуправле ние правами осуществляется отдельно от управления учетными записями. Для управления правами в пределах локального компьютера используется оснастка Local Security Policy (рис. 7.6). Для предоставления учетной записи необходимых прав выполните 0 0 1 Fописан ные ниже действия. 1. В оснастке Local Security Policy выберите папку Local Policies. 2. В папке Local Policies выберите вложенную папку User Right Assignment. 0 01 FВ пра вой части окна будет выведен список прав, которые могут быть присвоены пользователям. 3. Для присвоения пользователю того или иного права дважды 0 0 1 Fщелкните на на звании права и в открывшемся диалоговом окне Local Security Policy Settings 0 01 F(па раметры локальной политики безопасности) щелкните на кнопе Add 0 01 F(доба вить), после чего выберите имя нужного пользователя. Как и при работе с Windows NT, для того чтобы учетная запись 0 0 1 Fкомпонента), которое предназна чено для выбора тина устанавливаемого сетевого компонента 2. Для установки нового протокола выделите пункт Protocol (протокол) 0 0 1 Fи щелк ните на кнопке Add (добавить). В итоге откроется диалоговое окно Select Network Protocol (выбор сетевого протокола), с помощью которого, собственно, и выбирается устанавливаемый протокол (рис. 7.14). 0 0 1 Fр сетевого протокола) содержится список прото колов, поставляемых вместе с операционной системой Windows 2000 и еще не 0 01 Fуста новленных в системе. Если предполагается установить протокол стороннего 0 0 1 Fпроизво дителя, то необходимо явно указать папку, в которой содержатся соответствующие файлы. Для этого нужно воспользоваться кнопкой Have Disk (установить с диска). После того как нужный протокол выбран, остается только щелкнуть на кнопке ОК. Для некоторых протоколов (например, NetBEUI) на этом их 0 0 1 Fустановка за канчивается. Однако при работе со сложными протоколами (например, TCP/IP) может потребоваться конфигурирование свойств устанавливаемого протокола. Библиотека расширяет базовые возможности протокола, динамически ггодкл чаясь к операционной системе, и является как бы надстройкой над 0 0 1 Fним, выпол няющей различные сетевые операции по обмену данными между клиентом и сервером, для чего используются механизмы IPC. Одновременно SQL Server 2000 может работать с несколькими 0 0 1 Fсетевыми биб лиотеками. В табл. 7.7 приведен список и назначение 0 0 1 Fсетевых библиотек, постав ляемых в составе SQL Server 2000. Сетевая библиотека Описание AppleTalk ADSP Позволяет клиентам Apple Macintosh подключаться к серверам SQL Server 2000 по протоколу AppleTalk взамен TCP/IP Sockets. Вам не обязательно конфигурировать зоны Apple Macintosh, так как используется текущая зона. Библиотека не поддерживается на операционных системах Windows 95/98 Multiprotocol Работает через вызовы удаленных процедур RPC с использованием большинства механизмов IPC Windows NT: TCP/IP Sockets, Named Pipes, NWLink IPX/SPX и т. д. Не нуждается в конфигурировании. Лри работе под управлением операционной системы Windows NT позволяет шифровать данные при передаче по сети, а также выполнять аутентификацию Windows NT поверх любого протокола. Не поддерживается при установке SQL Server 2000 на Windows 98 Named Pipes Позволяет SQL Server 2000 использовать именованные каналы. Может (именованные работать поверх основных протоколов Windows. Следует учитывать, что каналы) Windows 98 не поддерживает серверную часть именованных каналов — доступна только их клиентская часть. Используется в Windows NT и Windows 2000 по умолчанию. По умолчанию для SQL Server устанавливается канал \\.\pipe\sql\query. Если на одном сервере установлено несколько копий SQL Server, то для обращения к конкретной копии требуется канал \\.\pipe\MSSQL$instancename\sql\query NWLink IPX/SPX Позволяет подключаться к SQL Server 2000 клиентам Novell NetWare Shared Memory С помощью библиотеки Shared Memory можно имитировать систему (разделяемая клиент-сервер на локальном компьютере, и потому ее рекомендуется память) использовать на компьютерах, не имеющих поддержки сети. Данная библиотека не является в полном смысле сетевой, хотя и имеет те же интерфейсы, что и другие библиотеки TCP/IP Sockets Работает поверх механизма IPC через сокеты протокола TCP/IP. Сокеты (сокеты TCP/IP) TCP/IP используются по умолчанию на всех операционных системах, в том числе и на Windows 98. При установке этой библиотеки необходимо указать порт, по которому будет осуществляться обмен данными. Для SQL Server 2000 портом по умолчанию является порт 1433. Возможна работа через прокси-сервер Banyan VINES С помощью этой библиотеки возможна работа клиентов, использующих протокол Banyan VINES IP. Для этих клиентов по протоколу Banyan VINES Sequenced Packet Protocol, работающему поверх протокола Banyan VINES IP, _________организуется соединение через механизмы IPC____________ В процессе установки SQL Server 2000 необходимо выбрать 0 0 1 Fтребуемые биб лиотеки. Если какая-то нужная библиотека не была установлена, то ее можно установить позже, воспользовавшись 0 0 1 Fутилитой сетевого конфигурирования сер вера SQL Server Network Utility 0 01 F(рис. 7.15). Эта утилита автоматически устанав ливается вместе с SQL Server 2000. Для запуска этой утилиты SQL Server Network Utility можно воспользоваться либо главным меню операционной системы, выбрав пункт Start > Programs > Microsoft SQL Server > Server Network Utility (пуск > программы > Microsoft SQL Server > Server Network Utility), либо запустив файл svrnetcn.exe, который находится в папке Tools\Bin установочной папки SQL Server 2000. После этого откроется собственно окно утилиты, приведенное на рисунке. Как видно, окно утилиты имеет две вкладки — General (общие) и Network Libraries (сетевые библиотеки). В свою очередь, на вкладке General 0 01 F(общие) имеется два спис ка — Disabled protocols (доступные протоколы) и Enabled protocols 0 01 F(установленные про токолы). В первом списке перечислены библиотеки, доступные для установки, но не используемые в работе сервера. Второй же список содержит перечень 0 0 1 Fбиблио тек, которые используются в текущей работе SQL Server 2000. 0 0 1 FДля изменения па раметров любой из них необходимо выделить имя библиотеки и щелкнуть на кнопке Properties (свойства), после чего 0 0 1 Fоткроется диалоговое окно свойств выбранной се тевой библиотеки. На рис. 7.16 приведено окно свойств библиотеки Multiprotocol. Большая часть библиотек позволяет настроить параметры подключения 0 0 1 Fкли ентов к серверу. Параметры, установленные по умолчанию для 0 0 1 Fлюбой из биб лиотек, можно изменить. Однако, хотя сетевые библиотеки 0 0 1 Fи позволяют изме нять параметры конфигурации, это может вызвать определенные проблемы. В частности, клиенты должны знать, какие параметры установлены на сервере. В противном случае они не смогут 0 0 1 Fустановить соединение. Значения по умол чанию являются стандартными и известны всем клиентам. Установка и конфигурирование клиентов Как уже было сказано, чтобы клиент имел возможность подключаться к SQL Server 2000, на нем должен быть установлен по крайней мере один 0 0 1 Fсетевой про токол и сетевая библиотека, соответствующая сетевой библиотеке сервера, В противном случае клиент не сможет установить соединение с SQL Server 2000. В составе всех операционных систем семейства Windows имеется набор общих сетевых протоколов. Однако 0 0 1 Fсетевые библиотеки должны быть установлены от дельно. Для их этого можно воспользоваться мастером установки SQL Server 2000, выбрав режим установки Client Connective Only (только для соединения клиента). В этом случае на компьютер будет установлены только 0 0 1 Fкомпоненты, необходи мые для соединения клиентов с SQL Server 2000. Если на клиенте используется несколько библиотек, то соединение с сервером может быть установлено с помощью любой из них. Однако после того как соединение установлено, работа с сервером ведется посредством только одной библиотеки, выбор которой происходит 0 0 1 Fследующим образом: клиент по оче реди перебирает библиотеки, перечисленные в списке Enabled Protocols (установленные протоколы) вкладки General (общие) утилиты SQL Server Network Utility, начиная с самой верхней. Если на сервере имеется аналогичная библиотека и параметры конфигурации сервера и клиента совпадают, то перебор на этом останавливается и для соединения выбирается эта библиотека. 0 0 1 FПолучается, что библиотека, находящая ся вверху списка, имеет больше шансов для установки соединения. Поэтому если желательно, чтобы клиент использовал конкретную библиотеку, ее следует поместить вверху списка. К компонентам, необходимым для соединения клиентов с SQL Server 2000, относятся сетевые библиотеки и утилита Client Network Utility 0 0 1 F(рис. 7.18), с по мощью которой выполняется конфигурирование сетевых библиотек со стороны клиента. Запустить утилиту можно из главного меню операционной системы, выбрав пункт Start > Programs > Microsoft SQL Server > Client Network Utility (пуск > программы > Microsoft SQL Server > Client Network Utility) либо запустив файл cliconfg.exe из папки SYSTEM операционной системы Windows 98 или SYSTEM32 для Windows NT и Windows 2000. Как видно из рисунка, окно утилиты Client Network Utility имеет 0 0 1 Fчетыре вклад ки. Первая их них имеет имя General (общие) и 0 0 1 Fпредназначена для управления набо ром библиотек, используемых для установления соединения с сервером. Назначение списков Disabled protocols (доступные протоколы) и Enabled protocols (установленные протоколы) этой вкладки точно такое же, как и для вкладки General 0 0 1 F(общие) утили ты Server Network Libraries. В нижней части вкладки имеется два флажка. О Enable protocol encryption (включить шифрование протокола) — извещение операторов об ошибках в работе сервера; О служба MSSearch позволяет реализовать поиск символьной информации в полях таблиц баз данных; О служба MS DTC позволяет организовать доступ к распределенным 0 0 1 Fисточни кам информации, расположенной как на локальном, так и на 0 0 1 Fудаленных сер верах. Дополнительные службы запускаются отдельно и устанавливают соединение с сервером, подобно обычным клиентам. Каждая такая служба самостоятельно подключается к MSSQLServer, используя определенные учетные записи с 0 0 1 Fсоот ветствующими правами доступа. Итак, чтобы начать работу с SQL Server 2000, достаточно запустить службу MSSQLServer. После этого пользователи могут устанавливать соединения с сервером и выполнять любые действия. Управление SQL Server в качестве службы возможно средствами 0 0 1 Fоперацион ной системы как локально, так и удаленно. В вашей организации может быть установлено несколько серверов баз данных, и 0 0 1 Fвы можете запускать либо оста навливать их, работая на любом компьютере, подключенном к сети (возможно, даже без установленных SQL Server и средств администрирования). Почти все вышесказанное относится к компьютерам, работающим под управлением операционных систем семейства Windows NT. Поскольку операционная система Windows 95/98 не имеет служб, вы можете запускать, останавливать и приостанавливать SQL Server только локально, то есть только на том компьютере, где запущен сервер SQL Server. Если на компьютере с SQL Server не установлена сетевая поддержка, вы все же сможете выполнять запуск, остановку и приостановку SQL Server. Действия при этом ничем не отличаются от операций с сетью. При установке соединения с локальным сервером, который не поддерживает сеть, используются 0 01 Fименован ные каналы. Именованные каналы непосредственно обращаются к SQL Server, минуя сетевые компоненты. Как в случае работы с сетью, так и без нее, по умолчанию устанавливается соединение посредством именованных каналов. Йри этом используется стандартный канал \\.\pipe\sql\query, если явно не указан какой-либо другой. В случае если при подключении не указывается имя сервера, производится прямое подключение к локальному серверу с использованием локальных именованных каналов. Если же указывается имя удаленного сервера, то используются сетевые именованные каналы либо другой механизм, например IPX/SPX. Автоматический старт Одним из способов запуска служб SQL Server 2000 является их запуск 0 0 1 Fопера ционной системой. Такой способ запуска называется автоматическим, так как участия пользователя в этом случае не требуется. Запуск службы происходит в момент загрузки операционной системы. 0 0 1 FЕсли после этого служба была оста новлена, то пользователь должен будет запускать ее вручную. На одном из этапов установки пользователь может разрешить 0 0 1 Fавтоматичес кий запуск служб SQL Server 2000. Если этого не было сделано, впоследствии автоматический запуск можно разрешить одним из следующих методов. О SQL Server Enterprise Manager. Чтобы установить автоматический старт служб SQL Server 2000 средствами Enterprise Manager, необходимо выбрать сервер и открыть окно его свойств, выбрав в контекстном меню пункт Properties 0 01 F(свой ства). В ответ откроется окно SQL Server Properties (свойства SQL Server), 0 01 Fпо казанное на рис. 10.1. В нижней части вкладки General (общие) имеется на- бор флажков, с помощью которых можно разрешить автоматический запуск для служб MSSQLServer, SQLServerAgent и MSDTC. О Средства утилиты Services. Третий способ заставить SQL Server 0 0 1 Fзапускать ся автоматически сводится к использованию встроенных в 0 0 1 Fоперационную си стему средств управления службами. Таким средством является утилита Services (службы) в окне Control Panel (панель 0 0 1 Fуправления) операционной си стемы. В окне утилиты отображается 0 0 1 Fсписок всех служб, имеющихся в опе рационной системе. Для каждой службы отображается ее текущее состояние и параметры запуска (рис. 10.2). Запуск службы идентифицируется меткой Started (запущена) в поле Status (состояние). В поле Startup Type 0 01 F(тип запус ка) возможны три варианта метки: Automatic (автоматический), Manual 0 01 F(руч ной) и Disabled 0 0 1 F(отключена), которые соответственно означают автоматичес кий запуск, ручной запуск и отключение службы. Для автоматического запуска служб SQL Server 2000 дважды щелкните на имени нужной службы. В ответ откроется окно свойств службы (рис. 10.3). Выбор метода запуска службы 0 0 1 Fкон фигурируется с помощью раскрывающегося списка Startup Type (тип 0 0 1 Fзапус ка), в котором необходимо выбрать пункт Automatic (автоматический). О Средства утилиты SQL Server Service Manager. Утилита SQL Server Service Manager позволяет запускать, останавливать и приостанавливать службы SQL Server 2000 (рис. 10.4). Кроме того, с ее помощью можно установить режим автоматического запуска для служб MSSQLServer, SQLServerAgent и MSDTC. Для 0 4 4 D 0 4 4 2 0 4 3 E 0 4 3 3 0 4 3 E 0 4 3 D 0 4 3 5 0 4 3 E 0 4 3 1 0 4 4 5 0 4 3 E  димо запустить Service Manager, выбрать нужный сервер, указать службу и уста-; новить флажок Auto-start service when OS starts (автоматически старт при запуске операционной системы). Повторите .эту операцию на всех 0 4 4 1 0 4 3 5 0 4 4 0 0 4 3 2 0 4 3 5 0 4 4 0 0 4 3 0 0 4 4 5 0 4 4 1 0 4 3 5 0 4 4 2 0 4 3 8 0 4 3 4 0 4 3 B 0 4 4 F 0 4 3 A 0 4 3 0 0 4 3 6  дой службы, которую необходимо запускать в автоматическом режиме. Если у вас возникнет необходимость отключить автоматический запуск SQL Server, воспользуйтесь любым из вышеперечисленных методов для отключения автозапуска. Ручной запуск SQL Server Если вы по каким-либо причинам не хотите использовать автозапуск, придется каждый раз при загрузке операционной системы вручную запускать SQL Server. Аналогичные действия необходимо выполнить в случае, когда вы перед этим по каким-то причинам остановили SQL Server 2000 и не хотите перезагружать после этого операционную систему. Существует несколько способов для выполнения ручного запуска служб SQL Server 2000. О Запуск SQL Server 2000 из окна Control Panel (панель управления) сводится к использованию утилиты Services (службы). Аналогично процедуре установки автозапуска для этого необходимо выбрать нужную службу, открыть окно свойств службы (см. рис. 10.3) и щелкнуть в нем на кнопке Start (пуск). Если в поле Startup Type (тип запуска) указан режим Disabled (отключена), то сразу запустить службу не удастся. Предварительно необходимо изменить режим ее запуска на Manual (ручной) или Automatic (автоматический) и только после этого выполнять запуск службы. Поскольку SQLServerAgent является зависимой службой, сначала необходимо запускать службу MSSQLServer и лишь затем SQLServerAgent. О Второй способ ручного запуска SQL Server предполагает использование SQL Server Enterprise Manager. Для этого щелкните правой кнопкой мыши на имени нужного сервера. В открывшемся контекстном меню можно 0 0 1 Fвыбрать коман ды, разрешенные для сервера в данный момент (рис. 10.5). Таким способом можно запускать (команда Start), останавливать (команда Stop) 0 01 Fи приостанав ливать (команда Pause) как локальные, так и удаленные серверы. Заметим, однако, что этот метод позволяет запускать только службу MSSQLServer. Значок службы SQLServerAgent расположен в папке Management сервера. Вызвав его контекстное меню, вы можете управлять работой этой службы. Дополнительные службы, такие как MSDTC и SQLMail, располагаются в папке Support Services. Управление их работой осуществляется аналогично. О Наиболее простой способ ручного запуска заключается в использовании 0 0 1 Fад министративной утилиты SQL Server Service Manager (см. рис. 10.4), 0 0 1 Fспеци ально предназначенной для запуска, остановки и приостановки служб SQL Server. В окне утилиты вам предлагается выбрать сервер и 0 0 1 Fслужбу, с кото рыми вы будете работать. Значки отображают действия, 0 0 1 Fдоступные в настоя щий момент для выбранной службы. О Следующий способ запуска SQL Server предполагает использование 0 0 1 Fутили ты командной строки net start. В качестве параметра необходимо указать имя службы, которую необходимо запустить, например: net start mssqlserver net start sqlserver-agent Для запуска служб именованной копии необходимо добавить ее имя и знак доллара перед ним. Например, для запуска службы MSSQLServer копии TRELON используется следующая команда: net start MSSQLSTRELON Для запуска службы SQLAgent требуется следующая команда: net start SQLAgentSTRELON Выполнение команды net start без имени службы приведет к выводу 0 0 1 Fсписка запущенных в операци онной системе служб. О Для запуска SQL Server можно также использовать команду sqlservr. В этом случае SQL Server 2000 запускается не как служба, а как отдельное 0 0 1 Fприло жение. Это означает, что все средства администрирования (Service Manager, Enterprise Manager, Services в панели управления) будут показывать, что сервер остановлен. Использование команды net stop mssql server для остановки SQL Server в этом случае выдаст сообщение об 0 0 1 Fошибке, так как система счи тает, что сервер не запущен. Все системные сообщения будут появляться в консольном окне, в котором выполнена команда sqlservr. 0 01 FСервер будет за пускаться под учетной записью 0 0 1 Fпользователя, работающего в системе в дан ный момент, и если этот 0 0 1 Fпользователь решит завершить сеанс работы в опе рационной системе, ему придется сначала завершить работу SQL Server. Ключ реестра, создаваемый программой установки и содержащий параметры запуска SQL Server 2000 по умолчанию, находится в реестре . Вы можете редактировать значения в реестре для подключения другой базы данных master. Автор использовал эту возможность, когда работал с двумя 0 0 1 Fоперационными системами на одном компью тере и нужно было работать с данными из обеих систем. Для этого пришлось только изменить ссылку на базу данных master, ее журнал транзакций и журнал ошибок. Вы можете создать свою собственную конфигурацию, сохранив все 0 0 1 Fнеобхо димые параметры запуска сервера в реестре. Создайте копию 0 0 1 Fстандартных клю чей (SQLArgO, SQLArgl или SQLArg2), изменив имя, например, на SingleUser. Затем отредактируйте строку данных для указания нужных параметров. Чтобы запустить SQL Server с новым ключом реестра, введите следующую команду: Sqlservr.exe -sSingleUser Здесь SingleUser — имя конфигурации. Приостановка SQL Server Перед остановкой сервера SQL Server вы можете приостановить его работу и отправить сообщение по сети, предупреждающее пользователей о предстоящей остановке сервера, чтобы они могли корректно закончить работу и сохранить свои данные. Приостановка сервера позволяет подключенным пользователям завершить работу, при этом новые 0 0 1 Fпользователи не смогут установить соедине ние. После того как все данные успешно сохранены и соединения разорваны, вы сможете спокойно произвести остановку сервера, не опасаясь, что получите выговор от начальника, который не успел сохранить результат дневной работы. Если вы выполняете остановку сервера без его предварительной приостановки, то все активные соединения немедленно закрываются 0 0 1 Fнезависимо от того, сохрани ли пользователи свои данные или нет. В таком случае вы очень скоро узнаете, что думают ваши коллеги по поводу подобных действий и вашей компетентности. При желании вы можете после приостановки возобновить работу сервера в нормальном режиме. Чтобы приостановить работу SQL Server, необходимо воспользоваться теми же средствами, что и для запуска, но вместо команды Start (пуск) выбирать команду Pause (пауза). Если необходимо остановить сервер из командной 0 0 1 Fстро ки, то нужно ввести следующую команду: net pause mssqlserver Для продолжения работы приостановленного SQL Server введите команду net continue mssql server Соответственно для именованных копий эти команды будут выглядеть 0 0 1 Fсле дующим образом: net pause mssqlSinstancename net continue mssql$instancename Вы не можете приостановить работу сервера, если он запущен командой sqlservr.exe, так как в этом случае сервер работает как самостоятельное приложение, а не как служба операционной системы. Остановка SQL Server Вы можете остановить сервер SQL Server 2000, если он запущен как служба, как локально (на том же сервере, на котором он запущен), так и удаленно (с клиентского компьютера или другого сервера SQL Server), используя один из следующих методов. О SQL Server Enterprise Manager останавливает локальный или удаленный сервер SQL Server либо службу SQLServerAgent. О SQL Server Service Manager останавливает локальный или удаленный сервер SQL Server либо службу SQLServerAgent из одного окна (в одном окне можно управлять работой всех служб). О Команда SHUTDOWN языка Transact-SQL применяется для остановки SQL Server из клиентского приложения при выполнении запросов, 0 0 1 Fнапример из утили ты osql или Query Analyzer. Используйте команду SHUTDOWN с параметром WITH NOWAIT для незамедлительной остановки сервера. О Команда net stop mssql server (net stop mssql Sinstancename - для 0 0 1 Fиме нованных копий) останавливает локальный или удаленный SQL Server, если вы работаете в Windows NT. О Утилита Services (службы) окна Control Panel (панель управления) 0 0 1 Fостанавли вает локальный сервер SQL Server. О Комбинация клавиш CTRL+C останавливает сервер SQL Server, если он 0 0 1 Fзапу щен из командной строки командой sqlservr.exe. При завершении работы все данные из кэша сохраняются на диск, кроме случая, когда остановка сервера производится с помощью комбинации клавиш CTRL+C. В этом случае сохранения данных не происходит, в результате время последующего запуска сервера увеличивается, так как необходимо выполнить фиксацию законченных и откат незавершенных транзакций. SQL Server 2000 ожидает завершения всех активных команд Transact-SQL и хранимых процедур, и только после их завершения происходит остановка 0 0 1 Fсер вера. Однако если вы останавливаете сервер командой SHUTDOWN WITH NOWAIT, остановка происходит незамедлительно вне зависимости 0 0 1 Fот того, все ли актив ные операции завершены. Перед остановкой SQL Server 2000 всегда осуществляйте приостановку соответствующих служб и рассылку предупреждающего сообщения. Это позволит пользователям корректно завершить свою работу и в то же время предотвратит новые соединения. Правила Безопасности На любом функционирующем предприятии имеется определенная группа 0 0 1 Fлю дей, которые обеспечивают принятие решений и контроль их 0 0 1 Fисполнения. Каж дый человек должен иметь четко очерченный круг обязанностей в соответствии со своей квалификацией и занимаемой 0 0 1 Fдолжностью. Например, выполнение еже дневного резервного 0 0 1 Fкопирования в большой организации лучше всего пору чить не системному администратору, а специально подготовленному персоналу. Четкое разграничение сфер деятельности помогает более эффективно 0 0 1 Fконтро лировать работу персонала, отслеживать произведенные операции 0 0 1 Fи осуществ лять перспективное планирование. Аналогичные требования существуют и относительно разграничения 0 0 1 Fдосту па к информации внутри предприятия. Некоторая информация 0 0 1 Fможет быть до ступна всему персоналу, возможно, даже и вашим клиентам. Другая часть информации не должна выходить за рамки отдела. Например, доступ ко всей информации по заработной плате сотрудников 0 0 1 Fпроверки системой безо пасности. На первом этапе пользователь идентифицируется по имени учетной записи и паролю, то есть проходит 0 0 1 Fаутентификацию. Если данные введены пра вильно, пользователь подключается к SQL Server. Подключение к SQL Server, или регистрация, не дает автоматического доступа к базам данных. Для каждой базы данных сервера регистрационное имя (или учетная запись — login) должно отображаться в имя пользователя базы данных (user). 0 0 1 FНа втором этапе, на осно ве прав, выданных пользователю как пользователю базы данных (user), 0 01 Fего ре гистрационное имя (login) получает доступ к соответствующей базе данных. В разных базах данных login 0 01 Fодного и того же пользователя может иметь одинако вые или разные имена user с разными правами доступа. Для доступа приложений к базам данных им также понадобятся права. Чаще всего приложениям выдаются те же права, которые 0 0 1 Fпредоставлены пользовате лям, запускающим эти приложения. Однако 0 0 1 Fдля работы некоторых приложе ний необходимо иметь фиксированный набор прав доступа, не зависящих от прав доступа пользователя. SQL Server 2000 позволяет предоставить такие с применением специальных ролей приложения. Итак, на уровне сервера система безопасности оперирует 0 0 1 Fследующими поня тиями: О аутентификация (authentication); О учетная запись (login); О встроенные роли сервера (fixed server roles). На уровне базы данных используются следующие понятия: О пользователь базы данных (database user); О фиксированная роль базы данных (fixed database role); О пользовательская роль базы данных (users database role); О роль приложения (application role). Режимы аутентификации SQL Server 2000 может использовать два режима аутентификации пользователей: О режим аутентификации средствами Windows NT/2000 (Windows NT Authentication); О смешанный режим аутентификации (Windows NT Authentication and SQL Server Authentication). Смешанный режим позволяет пользователям регистрироваться как 0 0 1 Fсред ствами Windows NT, так и средствами SQL Server. Кроме того, этот режим предлагает некоторые удобства по сравнению с первым. В 0 0 1 Fчастности, при аутен тификации только средствами домена Windows NT, 0 01 Fесли пользователь не име ет учетной записи в домене Windows NT, то он не сможет получить доступа к серверу баз данных. Смешанный режим аутентификации позволяет избежать этой проблемы. При выборе режима аутентификации следует исходить как из требований обеспечения наибольшей безопасности, так и из 0 0 1 Fсоображений простоты адми нистрирования. Если ваша организация 0 0 1 Fнебольшая и должности администрато ра сети и администратора баз данных совмещает один человек, то удобнее использовать аутентификацию Windows NT. Если же в организации сотни 0 0 1 Fпользо вателей и функции системного администратора и администратора баз данных выполняют различные люди, то может 0 0 1 Fоказаться, что аутентификация средства ми SQL Server удобнее. В 0 0 1 Fпротивном случае человеку, занимающемуся админи стрированием сервера баз данных, придется постоянно обращаться к системному администратору для создания нового пользователя, смены пароля или 0 0 1 Fдля пе ревода пользователя из одной группы в другую. К тому же 0 0 1 Fсистемный админи стратор будет иметь возможность назначать права доступа по своему усмотрению, а это совсем ни к чему. С другой стороны, каждый пользователь организации, скорее всего, имеет в домене учетную запись, администрированием которой занимается системный администратор. Благодаря аутентификации Windows NT 0 01 Fадминистратор баз дан ных может использовать уже 0 0 1 Fготовые учетные записи, а не отвлекаться на со здание новых. Обратите внимание, что речь идет только о праве подключения 0 0 1 Fпользователя к серверу баз дан ных. После регистрации пользователя в SQL Server способ проверки прав доступа к конкретной базе данных одинаков для обоих режимов аутентификации. Режим аутентификации SQL Server Для установки соединения с сервером SQL Server 2000, находящемся в домене, с которым не установлены доверительные отношения, можно 0 0 1 Fиспользовать аутен тификацию SQL Server. Аутентификация SQL Server также используется, когда вообще нет возможности зарегистрироваться в 0 0 1 Fдомене. Например, при подклю чении к SQL Server 2000 по Интернету. При работе с аутентификацией SQL Server доступ также предоставляется на основе учетных записей. Но в этом случае используются учетные записи SQL Server, а не Windows NT. Для аутентификации средствами SQL Server Server член стандартной роли сервера sysadmin или securityadmin должен создать и сконфигурировать для пользователя учетную запись, в которую входит имя учетной записи, уникальный идентификатор SQL Server и пароль. Вся эта 0 0 1 Fинформация будет храниться в сис темной базе master. Создаваемая 0 0 1 Fучетная запись не имеет отношения к учет ным записям Windows NT. В этом режиме при попытке пользователя получить доступ к SQL Server сервер сам проверяет правильность имени пользователя и пароль, сравнивая их с данными в системных таблицах. Если данные, введенные 0 0 1 Fпользователем, со впадают с данными SQL Server, пользователю разрешается доступ к серверу. В противном случае попытка доступа отклоняется и выдается сообщение об ошибке. Аутентификация SQL Server может применяться в следующих случаях: О для пользователей Novell NetWare, Unix и т. д.; О при подключении к SQL Server 2000 через Интернет, когда регистрация в домене не выполняется; О под управлением операционной системы Windows 98. Учтите, что в этом случае администратор SQL Server 2000 сам должен 0 0 1 Fпериоди чески предупреждать пользователей о необходимости сменить пароль, чтобы обезопасить систему от несанкционированного доступа, поскольку в отличие от Windows NT, в SQL Server отсутствуют подобные средства системы безопасности. В большинстве случаев учетная запись в SQL Server создается с целью предоставления доступа. Но бывают ситуации, когда необходимо запретить доступ пользователю или группе. Например, при наличии 0 0 1 Fсложной системь! без опасности Windows NT доступ обычно предоставляется группе пользователей. Однако если в группе имеется человек, которому нельзя разрешать доступ к SQL Server, его необходимо 0 0 1 Fубрать из этой группы. Но такой подход неудов летворителен, если 0 0 1 Fгруппа предназначена не только для объединения пользова телей, имеющих доступ к SQL Server, но имеет еще и какие-то дополнительные функции. SQL Server разрешает создать учетную запись с целью запрещения доступа. Это гарантирует, что пользователь никаким 0 0 1 Fобразом не сможет устано вить соединение с сервером. Создав группу Windows NT и запретив ей доступ к SQL Server, вы можете включать в нее пользователей, которым необходимо отказать в доступе. После установки SQL Server создаются две стандартные учетные записи: BUILTINXAdministrators и sa. О BUILT INNAdministrators — это учетная запись Windows NT, обеспечивающая автоматический доступ всем членам группы Administrators к SQL Server. Учетная запись BUILTINNAdministrators по умолчанию является членом встроенной роли сервера sysadmin. 0 0 1 FТаким образом, системные администра торы получают полный 0 0 1 Fдоступ ко всем базам данных. В ситуации, когда фун кции системного администратора и администратора баз данных выполняют разные люди, скорее всего, следует исключить эту учетную запись из роли sysadmin, а возможно, и вообще удалить. О s a — это специальная учетная запись SQL Server для администратора. По умолчанию она присвоена встроенной системной роли сервера sysadmin и не может быть изменена. Эта учетная запись сохранена в этой версии SQL Server для сохранения совместимости с 0 0 1 Fприложениями, написанными для пре дыдущих версий. Хотя s а и 0 0 1 Fимеет административные права, ее не рекомен дуется использовать в SQL Server 2000. Вместо этого следует создать новых пользователей и включить их в административную группу sysadmin. 0 01 FУчет ную запись s а оставьте на крайний случай, когда учетные записи 0 0 1 Fадминист раторов окажутся недоступными либо вы забудете пароль. В процессе установки SQL Server 2000 мастер установки предлагает ввести пароль для учетной записи sa, но он также может быть оставлен 0 0 1 Fи пустым. В этом случае следует обязательно устано вить новый пароль сразу же после установки. В предыдущих версиях не было возможности 0 0 1 Fуста навливать пароль учетной записи sa во время установки сервера, и этот пароль всегда был пустым. Компоненты структуры безопасности Фундаментом системы безопасности SQL Server 2000 являются учетные записи (login), пользователи (user), роли (role) и группы (group). t Пользователь, подключающийся к SQL Server, должен идентифицировать себя, используя учетную запись. После того как клиент успешно прошел аутентификацию, он получает доступ к SQL Server. Для получения доступа к любой базе 0 01 Fдан ных учетная запись пользователя (login) отображается в пользователя данной базы данных (user). Объект «пользователь базы данных» применяется для 0 0 1 Fпредостав ления доступа ко всем объектам базы данных: таблицам, 0 0 1 Fпредставлениям, храни мым процедурам и т. д. В пользователя базы данных может отображаться: О учетная запись Windows NT; О группа Windows NT; О учетная запись SQL Server. что соединение с сервером устанавливается вследствие членства в группе Windows NT, которая имеет доступ к серверу; О user — имя пользователя базы данных, с которым ассоциируется данная 0 0 1 Fучет ная запись. Пользователь, который создает объект в базе данных, например 0 0 1 Fтаблицу, хра нимую процедуру или представление, становится владельцем объекта. Владелец объекта (database object owner) имеет все 0 0 1 Fправа доступа к созданному им объек ту. Чтобы пользователь мог создать объект, владелец базы данных (dbo) 0 01 Fдол жен предоставить пользователю соответствующие права. Полное имя создаваемого объекта включает в себя имя создавшего его пользователя. Если пользователь хочет обратиться к таблице, используя только ее имя и не указывая владельца, SQL Server применяет следующий алгоритм поиска. 1. Ищется таблица, созданная пользователем, выполняющим запрос. 2. Если таблица не найдена, то ищется таблица, созданная владельцем 0 0 1 Fбазы дан ных (dbo). Допустим, пользователь Liss пытается обратиться к таблице Lil iya .TableA, просто используя имя Tab! еА. Поскольку таблица, созданная Li I iya, 0 01 Fне соответ ствует ни первому, ни второму критерию поиска, то таблица ТаЫеА найдена не будет и пользователь получит сообщение об ошибке. Для получения доступа к таблице необходимо ввести имя, включающее владельца объекта, то есть Liliya.TableA. Владелец объекта не имеет никакого специального пароля или особых прав доступа. Он неявно имеет полный доступ, но должен явно предоставить доступ другим пользователям. SQL Server позволяет передавать права владения от одного пользователя другому. Чтобы удалить владельца объекта из базы данных, 0 0 1 Fсначала необходи мо удалить все объекты, которые он создал, или передать права на их владение другому пользователю. Для этого можно использовать хранимую процедуру sp_changeobjectowner, имеющую следующий синтаксис: sp_changeobjectowner [ @objname = ] 'object' , [ (Pnewowner = ] 'owner' Здесь с помощью первого параметра указывается имя объекта, а с помощью второго — имя пользователя, который станет новым владельцем указанного объекта. Роли сервера Роль — это мощный инструмент, добавленный в SQL Server 7.0, чтобы заменить группы, которые использовались в предыдущих версиях. Роль 0 0 1 Fпозволяет объе динять пользователей, выполняющих одинаковые 0 0 1 Fфункции, для упрощения ад министрирования системы безопасности SQL Server. В SQL Server реализовано два вида стандартных ролей: на уровне сервера и на уровне баз данных. При установке SQL Server 2000 создается 9 фиксированных ролей сервера и 9 фиксированных ролей базы данных. Эти роли вы не сможете удалить, кроме того, нельзя модифицировать права их доступа. Вы не сможете предоставить пользователю права, которые имеют фиксированные роли сервера, другим способом, кроме как включением его в нужную роль. В предыдущих версиях SQL Server для администрирования сервера можно было использовать только учетную запись sa или ее аналог. Иначе говоря, вы могли дать либо все права, либо никаких. Теперь в SQL Server эта проблема решена путем добавления ролей сервера (server role), 0 0 1 Fкоторые позволяют пре доставить операторам сервера только те права, которые администратор посчитает возможным предоставить. Роли сервера 0 0 1 Fне имеют отношения к администриро ванию баз данных. Можно включить любую учетную запись SQL Server (login) или учетную запись Windows NT в любую роль сервера. Стандартные роли сервера (fixed server role) и их права приведены в табл. Таблица. Фиксированные роли сервера Встроенная Назначение роль сервера______________________________________________ Sysadmin Может выполнять любые действия в SQL Server Serveradmin Выполняет конфигурирование и выключение сервера Setupadmin Управляет связанными серверами и процедурами, автоматически запускающимися при старте SQL Server Securityadmin Управляет учетными записями и правами на создание базы данных, также может читать журнал ошибок Processadmin Управляет процессами, запущенными в SQL Server Dbcreator Может создавать и модифицировать базы данных Diskadmin Управляет файлами SQL Server Bulkadmin Эта роль не существовала в SQL Server 7.0. Члены роли Bulkadmin могут (Bulk Insert вставлять данные с использованием средств массивного копирования, administrators) не имея непосредственного доступа к таблицам____________________ Роли баз данных Роли базы данных (database role) позволяют объединять пользователей в одну административную единицу и работать с ней как с обычным пользователем. Можно назначить права доступа к объектам базы данных для конкретной роли, при этом вы автоматически наделяете всех членов 0 0 1 Fэтой роли одинаковыми пра вами. Вместо того чтобы предоставлять 0 0 1 Fдоступ каждому конкретному пользова телю, а впоследствии постоянно 0 0 1 Fследить за изменениями, можно просто вклю чить пользователя в нужную роль. Если сотрудник переходит в другой отдел, нужно просто 0 0 1 Fудалить его из одной роли и добавить в другую. Создайте необ ходимое количество ролей, которые охватывали бы все многообразие действий с базой данных. Позже, при изменении функций членов одной из ролей, 0 0 1 Fдоста точно изменить права доступа для этой роли, а не устанавливать новые права для каждого пользователя. В роль базы данных можно включать: О пользователей SQL Server; О роли SQL Server О пользователей Windows NT; ' О группы Windows NT, которым предварительно предоставлен доступ к 0 0 1 Fнуж ной базе данных. Средства Enterprise Manager позволяют добавлять в роль базы данных 0 0 1 Fтоль ко пользователей базы данных (user). Используйте хранимую процедуру sp_addrolemember, чтобы задействовать все возможности SQL Server 2000: sp_addrolemember [@ro1ename =] 'role', [@membername =] 'security_account' Здесь параметры означают следующее: О role— название роли SQL Server в текущей базе данных; О security_account — имя того объекта системы безопасности, который 0 0 1 Fнеоб ходимо включить в роль. В качестве такого объекта могут 0 0 1 Fвыступать как учет ные записи SQL Server, так и пользователи и группы Windows NT, которым предоставлен доступ к серверу баз данных. При создании базы данных для нее определяются стандартные роли базы данных, которые, так же как и стандартные роли сервера, не могут 0 0 1 Fбыть измене ны или удалены. Стандартные роли баз данных (fixed database role) и их права приведены в табл. Таблица. Фиксированные роли баз данных Встроенная роль Назначение баз данных_______________________________________________ db__owner Имеет все права в базе данных db_accessadmin Может добавлять или удалять пользователей db_securityadmin Управляет всеми разрешениями, объектами, ролями и членами ролей db_ddladmin Может выполнять любые команды DDL, кроме GRANT, DENY и REVOKE db_backupoperator Может выполнять команды DBCC, CHECKPOINT и BACKUP db_datareader Может просматривать любые данные в любой таблице БД db_datawriter Может модифицировать любые данные в любой таблице БД db_denydatareader Запрещается просматривать данные в любой таблице dbjjenydatawriter_________Запрещается модифицировать данные в любой таблице_____ Кроме указанных выше ролей существует еще одна — public. Эта роль 0 0 1 Fиме ет специальное назначение, поскольку ее членами являются все пользователи, имеющие доступ к базе данных. Нельзя явно установить 0 0 1 Fчленов этой роли, по тому что все пользователи и так автоматически 0 0 1 Fявляются ее членами. Исполь зуйте эту роль для предоставления минимального доступа пользователям, для которых права доступа к объектам не определены явно. Если в базе данных разрешен пользователь guest, то установленный для publ i с доступ будут иметь все пользователи, получившие доступ к SQL Server. Роль public имеется во всех базах данных, включая системные базы данных master, tempdb, msdb, model, И не может быть удалена. Группы Windows NT могут быть использованы аналогично ролям SQL Server. Можно создать одну учетную запись (login) для группы Windows NT и включать соответствующих пользователей вместо роли в группу Windows NT. Выбор метода администрирования зависит от вас. следующие данные: • любые данные, передаваемые между сервером и клиентом по сети; • пароли учетных записей SQL Server или ролей приложения; • код, использованный для создания объектов базы данных (хранимых процедур, представлений, триггеров и т. д.). Пароли учетных записей и ролей приложения всегда сохраняются в 0 0 1 Fсистем ных таблицах SQL Server в зашифрованной форме. Это предохраняет их от просмотра любым пользователем, включая администратора. Кроме того, пароль роли приложения может быть зашифрован перед отправкой его на сервер. Если код триггера, представления или хранимой процедуры содержит 0 0 1 Fдан ные или алгоритм, которые необходимо сохранить в тайне, 0 0 1 Fиспользуйте шифро вание этих объектов. Шифрование данных при передаче их по сети гарантирует, что 0 0 1 Fникакое при ложение или устройство не сможет их прочитать, даже 0 0 1 Fесли и перехватит. Шиф рованное соединение позволяет также предотвратить перехват паролей пользователей. Если вы хотите шифровать данные при передаче их по сети, необходимо использовать сетевую библиотеку Multiprotocol Net-Library. Ограничение доступа к файлам SQL Server В своей работе SQL Server создает и использует множество файлов — 0 0 1 Fбазы дан ных, журналы ошибок, резервные копии, файлы для экспорта и импорта данных и многое другое. Службы SQL Server на уровне 0 0 1 Fоперационной системы выполня ются в виде процессов. Для нормальной работы SQL Server необходимо, чтобы эти процессы имели полный доступ ко всем указанным выше файлам на уровне файловой системы. Для этого на уровне операционной системы требуется 0 0 1 Fпредо ставить соответствующие права учетным записям, которые 0 0 1 Fиспользуются для за пуска SQL Server. Лучше всего управлять правами доступа непосредственно на уровне файлов и папок. Для этого сервер должен работать под 0 0 1 Fуправлением опе рационной системы Windows NT и иметь файловую систему NTFS. Если сервер стартует как служба, необходимо предоставить полные права доступа учетным записям, используемым для запуска служб. Если же старт SQL Server выполняется из командной строки или на компьютере под управлением Windows 98, то сервер будет иметь права доступа учетной записи пользователя, выполнившего запуск. Если для запуска сервера используется учетная запись локальной системы, то доступ должен предоставляться пользователю SYSTEM. С целью ограничения возможностей неавторизированного доступа 0 0 1 Fдля фай лов SQL Server необходимо установить запрет на чтение, 0 0 1 Fудаление, модифика цию и исполнение всем пользователям, кроме непосредственно SQL Server. Права доступа Когда пользователи подключаются к SQL Server, действия, которые они могут выполнять, определяются правами (разрешениями), выданными 0 0 1 Fих учетной за писи, группе или роли, в которой они состоят. Права в SQL Server можно разделить на три категории: О права на доступ к объектам баз данных; О права на выполнения команд Transact-SQL; О неявные права (разрешения). После создания пользователь не имеет никаких прав доступа, кроме 0 0 1 Fтех, ко торые разрешены для специальной роли базы данных public. 0 0 1 FПрава, предос тавленные этой роли, доступны для всех пользователей в базе данных. Права пользователю выдаются администратором либо владельцами 0 0 1 Fбаз дан ных или конкретных объектов баз данных. Для предоставления пользователю определенного набора прав можно использовать роли. Создав несколько ролей и предоставив им необходимые права доступа, 0 0 1 Fадминистратор базы данных мо жет просто включать пользователей в 0 0 1 Fсоответствующие роли. Пользователь ав томатически получает все права доступа, определенные для роли. Стандартные роли базы данных уже имеют определенный набор прав. Например, члены роли db_datareader могут просматривать любые данные в любой таблице. Важно быть осторожным с предоставлением разрешений на доступ к данным. Необходимо внимательно контролировать права доступа, 0 0 1 Fвыдаваемые пользова телю как непосредственно, так и через членство в группах Windows NT и ролях SQL Server. Особенно это касается больших систем безопасности с тысячами пользователей и десятками 0 0 1 Fгрупп. Вы должны быть уверены, что существую щая система безопасности дает возможность пользователю выполнять любые необходимые действия, но ограничивает доступ к информации, которая 0 0 1 Fне тре буется ему для выполнения своих обязанностей. Используйте все возможности SQL Server, контролируя права доступа не только на уровне таблиц, но и на уровне столбцов. Указывая права 0 0 1 Fдоступа к конкретно му столбцу, вы можете более гибко управлять системой безопасности. Аналогичные рекомендации касаются разрешений на выполнение команд Transact-SQL. Можно спроектировать базу данных таким 0 0 1 Fобразом, что выпол нять конкретные действия — создание таблиц, 0 0 1 Fпредставлений, правил, резерв ных копий и т. д. — будут строго определенные пользователи. Права на доступ к объектам баз данных Работа с данными и выполнение хранимых процедур требуют наличия класса доступа, называемого правами на доступ к объектам баз данных. Под объектами подразумеваются таблицы, столбцы таблиц, 0 0 1 Fпредставления, хранимые процеду ры. Права на доступ к объектам баз 0 0 1 Fданных контролируют возможность выпол нения пользователями, например, команд SELECT, INSERT, UPDATE и DELETE для таблиц и 0 0 1 Fпредставлений. Таким образом, если пользователю необходимо доба вить новые данные в таблицу, ему следует предоставить право INSERT (вставка записей в таблицу). Предоставление же пользователю права EXECUTE разрешает ему выполнение каких-либо хранимых процедур. Для различных объектов применяются разные наборы прав доступа к ним: О SELECT, INSERT, UPDATE, DELETE, REFERENCES- эти права 0 0 1 Fмогут быть приме нены для таблицы или представления; О SELECT и UPDATE — эти права могут быть применены к конкретному столбцу таблицы или представления; О EXECUTE— это право применяется только к хранимым процедурам и 0 0 1 Fфунк циям. Ниже приводится более подробное описание каждого из этих прав. О INSERT. Это право позволяет вставлять в таблицу или представление новые строки. Как следствие, право INSERT может быть выдано только на уровне таблицы или представления и не может быть выдано на уровне столбца. О UPDATE. Это право выдается либо на уровне таблицы, что позволяет изменять все данные в таблице, либо на уровне отдельного столбца, 0 0 1 Fчто разрешает из менять данные только в пределах конкретного столбца. О DELETE. Это право позволяет удалять строки из таблицы или представления. Как и право INSERT, право DELETE может быть 0 0 1 Fвыдано только на уровне таб лицы или представления и не может быть выдано на уровне столбца. О SELECT. Разрешает выборку данных. Может выдаваться как на уровне 0 0 1 Fтабли цы, так и на уровне отдельного столбца. О REFERENCES. Возможность ссылаться на указанный объект. Применительно к таблицам разрешает пользователю создавать внешние ключи, ссылающиеся на первичный ключ или уникальный столбец этой таблицы. Применительно к представлениям право REFERENCES позволяет связывать представление со схемами таблиц, на основе которых строится представление. Это позволяет отслеживать 0 0 1 Fизменения структуры исходных таблиц, которые могут повли ять на работу представления. Право REFERENCES не существовало в 0 0 1 Fпредыду щих версиях SQL Server. Как следует из вышеизложенного, доступ можно предоставлять как на 0 0 1 Fуров не всей таблицы или представления, так и на уровне отдельного 0 0 1 Fстолбца. Обыч но не практикуется управление правами доступа на уровне конкретного столбца. Если в таблице имеется один или более 0 0 1 Fстолбцов, доступ пользователей к кото рым необходимо ограничить, то в базе данных часто создается представление (view), включающее только те столбцы исходной таблицы, доступ к которым разрешен. Предоставить или отклонить доступ пользователю базы данных ко всем 0 0 1 Fобъек там базы данных можно при помощи встроенных ролей базы 0 0 1 Fданных. Напри мер, для разрешения чтения данных из всех таблиц и представлений базы данных достаточно включить пользователя в фиксированную роль db_datareader, а не изменять права доступа 0 0 1 Fпользователя к каждой таблице и представлению в от дельности. Используйте команду GRANT для управления разрешениями пользователя на доступ к объектам базы данных: GRANT (ALL [PRIVILEGES] | permiss1on[....n]} { [(column[,...n])] ON {table | view} | ON {table | view}[(column[,...n])] | ON {stored_procedure | extended_procedure} } TO security_account[,...n] [WITH GRANT OPTION] [AS {group | role}] Назначение параметров команды GRANT следующее: О ALL — пользователю предоставляются все доступные разрешения. Этот 0 0 1 Fпара метр могут использовать только участники роли sysadmln; О permission — список доступных разрешений, которые предоставляются 0 0 1 Fпользо вателю (SELECT, INSERT, UPDATE, DELETE, EXECUTE). Вы 0 0 1 Fможете одновременно пре доставлять несколько разрешений, в этом extended_procedure} TO security_account[....n] [CASCADE] Для запрещения выполнения команд Transact-SQL применяется другая 0 0 1 Fко манда: DENY {ALL | statement^... .n]} ТО security_account[....n] Параметры данной команды аналогичны параметрам команды GRANT. 0 0 1 FПара метр CASCADE позволяет отзывать права не только у данного пользователя, но также и у всех тех пользователей, кому он предоставил данные права. Поясним смысл вышесказанного на примере. Пусть вы предоставили пользователю Sheridan определенные права: GRANT CREATE TABLE ТО Sheridan WITH GRANT OPTION Допустим, Sheridan предоставляет аналогичные права некоторым 0 0 1 Fпользова телям. Если впоследствии вам потребуется отозвать разрешения у Sheridan, вы выполните команду: DENY CREATE TABLE ТО Sheridan CASCADE При этом будут отозваны и все разрешения, которые Sheridan предоставил другим пользователям. Создание и обслуживание баз данных Любая база данных SQL Server 2000 состоит из набора таблиц, содержащих данные, и дополнительных объектов, создаваемых для 0 0 1 Fобработки данных. К та ким объектам относятся, например, 0 0 1 Fпредставления, триггеры и хранимые про цедуры. Данные сохраняются в таблицах в соответствии с их логическим 0 01 Fопре делением, например, данные об имеющихся на складе товарах хранятся в одной таблице, а список персонала — в другой. SQL Server позволяет одновременно поддерживать множество баз данных, которые могут иметь связи с другими базами данных либо 0 0 1 Fсуществовать неза висимо. Прежде чем приступить к созданию базы данных, необходимо четко 0 0 1 Fпред ставлять все составляющие ее части и уметь грамотно 0 0 1 Fиспользовать их. Соблю дение этого требования гарантирует, что ваша база данных будет иметь оптимальную структуру. Настоятельно рекомендую не создавать в системной базе данных master 0 0 1 Fникаких пользователь ских объектов, хотя это и возможно. База данных master содержит системные таблицы, которые хранят данные о параметрах функционирования SQL Server. Поэтому повреждение данных в этой базе может привести к непредсказуемым последствиям. SQL Server 2000 предлагает несколько путей создания баз данных. О Использование Enterprise Manager. Для создания базы данных с помощью Enterprise Manager в контекстном меню папки Databases на нужном сервере. выберите пункт New Database (новая база данных). ; О Использование мастера Create Database Wizard. На панели инструментов Enterprise Manager щелкните на кнопке Run a Wizard (запустить мастера) и выберите нужного мастера. О Использование Transact-SQL. Этот метод предполагает выполнение команды CREATE DATABASE. Кроме перечисленных методов имеется еще несколько способов создания баз данных, например средствами SQL-DMO. Работа с этими 0 0 1 Fмеханизмами являет ся темой отдельной книги и здесь рассматриваться не будет. Один сервер может поддерживать, максимум, 32 767 баз данных. Для создания базы данных необходимо указать ее название, владельца (им будет пользователь, создающий базу данных), размер, определить файлы и группы файлов, из которых будет состоять создаваемая база данных. Перед созданием базы данных необходимо уяснить следующие моменты: О по умолчанию базы данных разрешено создавать членам 0 0 1 Fфиксированных ро лей сервера sysadmin и dbcreator, хотя разрешение на создание баз данных можно предоставлять и другим пользователям; О пользователь, создающий базу данных, автоматически становится ее 0 0 1 Fвладель цем; О имя (название) базы данных должно соответствовать правилам именования объектов. Для хранения базы данных используется три типа файлов. О Primary — первичный файл. Каждая база данных обязательно имеет такой файл, причем только один. В этом файле хранится системная информация о базе данных и ее объектах. Здесь же размещаются системные таблицы. Кроме того, в первичном файле могут храниться 0 0 1 Fи пользовательские данные. По умол чанию этот файл имеет расширение .mdf. О Secondary — вторичный файл. Здесь содержатся пользовательские данные, не поместившиеся в первичном файле. Если база данных 0 0 1 Fнебольшая и нет на добности создавать вторичные файлы, то всю информацию можно хранить в первичном файле. Однако если база данных имеет большие размеры, можно иметь несколько вторичных файлов, причем для удобства работы с данными эти файлы можно 0 0 1 Fхранить на разных дисках. По умолчанию вторичные фай лы имеют расширение .ndf. О Transaction Log — файл журнала транзакций. Минимальный размер такого файла —512 Кбайт. База данных должна иметь, по крайней мере, один файл журнала транзакций. В этом файле будет храниться 0 0 1 Fинформация о транзак циях, выполняемых в базе данных. По 0 0 1 Fумолчанию файлам журнала транзак ций присваивается расширение .Idf. Отметим, что файл журнала транзакций не может быть помещен 0 0 1 Fна сжатый диск или удаленный сетевой диск (обще доступный сетевой каталог). На основе сказанного выше можно сделать вывод, что любая база данных состоит, по крайней мере, из двух файлов — одного первичного файла данных и одного файла журнала транзакций. Использование неформатированных разделов SQL Server 2000 позволяет использовать для создания файлов базы данных так называемые неформатированные (или «сырые» — raw) 0 0 1 Fразделы. Неформатиро ванный раздел — это раздел диска, который был создан с помощью утилиты fdisk (MS DOS, Windows 95/98) или Disk Administrator (Windows NT, Windows 2000), но не был отформатирован. На таком разделе не существует файловой системы (FAT или NTFS), 0 0 1 Fпоэтому там невозможно хранение файлов операционной сис темы. Тем не менее, если при создании базы данных в качестве физического 0 0 1 Fиме ни файла в конструкции <fi!espec> указать неформатированный раздел, то SQL Server 2000 создаст в этом разделе блок данных (назовем его файлом), который займет все свободное пространство. Так как при создании файла будет занято все доступное пространство, то увеличение 0 0 1 Fразмера файла в данном случае невоз можно. Следовательно, указание параметров MAXSIZE и FILEGROW не обязательно. Также не обязательно указание первоначального размера файла. В качестве 0 0 1 Fфи зического имени файла необходимо указать только букву раздела, например F:. Задание неформатированного раздела другим способом (а 0 0 1 Fтакие имеются — на пример формат, используемый в файле boot.ini) не допускается. То есть, чтобы иметь возможность разместить файл базы 0 0 1 Fданных на неформатированном разде ле, нужно присвоить этому 0 0 1 Fразделу конкретную букву, сконфигурировав его, та ким образом, в качестве логического диска. Отметчу, что на неформатированном разделе можно разместить лишь один файл базы данных. Даже после того как SQL Server создаст в этом разделе файл, операционная система будет воспринимать раздел как неформатированный или как раздел с неизвестной файловой системой. 0 0 1 FОбычные операции работы с файлами, выпол няемые операционной 0 0 1 Fсистемой, будут недоступны. То есть нельзя будет вы полнять копирование, удаление, изменение или перемещение созданного файла. Кроме того, операции резервного копирования с помощью утилиты Windows NT Backup также будут недоступны. Однако допускается 0 0 1 Fсоздание резервных ко пий базы данных и журнала транзакций средствами SQL Server 2000. При использовании неформатированных разделов недоступны инструменты проверки целостности диска. Более того, невозможна «горячая» замена поврежденных кластеров, которая выполняется для файловой системы NTFS на дисках SCSI. Путем использования неформатированных разделов можно 0 0 1 Fобеспечить вы сокий уровень безопасности информации в базе данных. 0 0 1 FПри размещении фай лов базы данных на обычных дисках с файловой системой всегда имеется возможность скопировать эти файлы и подключить к другому серверу SQL Server 2000. Решить эту проблему в [ COLLATE collationjiame ] [ FOR LOAD | FOR ATTACH ] Рассмотрим подробно назначение каждого из аргументов. О database_name. С помощью этого аргумента указывается имя, которое будет присвоено создаваемой базе данных. При выборе имени следует следовать общим правилам именования объектов. Если имя базы данных содержит пробелы или другие недопустимые символы, оно должно быть 0 0 1 Fзаключено в огра ничители (двойные кавычки или квадратные скобки). 0 0 1 FИмя базы данных дол жно быть уникальным в пределах сервера и не 0 0 1 Fможет превышать 128 симво лов. Если имя журнала транзакций явно не указано, то сервер укорачивает имя базы данных таким образом, чтобы оно не превышало 123 символов. Это делается из-за того, что 0 0 1 Fсервер по умолчанию использует для имени журна ла транзакций имя базы данных и добавляет к нему в конце символы _Log. О О N. Это ключевое слово означает, что далее следует определение файлов базы данных. О PRIMARY. Это ключевое слово означает, что далее следует описание 0 0 1 Fпервично го файла базы данных. Напомним, что в этом файле хранятся все системные данные и таблицы. Только один файл в базе данных может быть определен как первичный. Если первичный файл не определен явно, то в этом качестве будет использоваться первый файл, указанный в конструкции <f i I espeo. 0 01 FГруп па файлов, в которую включен первичный файл, называется 0 01 Fпервичной груп пой файлов (primary file group). Первичная группа назначается группой файлов по умолчанию (default file group), и в нее будут включены все файлы, для 0 0 1 Fко торых явно не указана пользовательская группа файлов (user file group). О LOG ON. Это ключевое слово означает, что файлы журнала транзакций будут определены явно. После LOG ON должно следовать определение 0 0 1 Fфайлов жур нала транзакций. Если это ключевое слово не 0 0 1 Fиспользуется, то есть пользо ватель не задает явно файлы журнала транзакций, то сервер автоматически создает единственный файл размером 25% от общей суммы размеров файлов данных. Имя файла генерируется на основе имени базы данных, но в конце к нему добавляются символы _Log. О FOR LOAD. Этот аргумент оставлен в большей степени для обеспечения 0 0 1 Fобрат ной совместимости с предыдущими версиями SQL Server (до SQL Server 7.0). Он предписывает серверу создать базу данных в 0 0 1 Fрежиме использования толь ко владельцем (dbo use only). Это делается, 0 0 1 Fесли необходимо выполнить вос становление базы данных из резервной 0 0 1 Fкопии. Дело в том, что в ранних вер сиях SQL Server восстановление базы данных было возможно только в уже существующую базу данных, установленную в режим FOR LOAD. Начиная с SQL Server 7.0, при необходимости база данных может быть создана автоматически в ходе выполнения команды RESTORE. Более того, допускается восстановление резервной копии поверх существующей базы данных. О FOR ATTACH. Этот аргумент используется, когда необходимо выполнить 0 0 1 Fприсое динение (attach) базы данных. В этом случае на диске уже 0 0 1 Fдолжны существо вать файлы с данными. Таким образом, создание базы данных происходит только на логическом уровне — в системную таблицу sysdatabases 0 01 Fбазы дан ных master вносятся соответствующие 0 0 1 Fзаписи, но создание собственно фай лов не выполняется. Для 0 0 1 Fподключения базы данных бывает достаточно ука зать только размещение первичного файла базы данных. Информация о местоположении всех других файлов базы данных (вторичных и 0 0 1 Fжурнала тран закций) хранится в первичном файле базы данных. 0 0 1 FОднако если местополо жение файлов базы данных с момента ее 0 0 1 Fотсоединения изменилось, то необ ходимо будет указать полный путь к каждому файлу базы данных. Присоединение базы данных можно также выполнить и с помощью 0 0 1 Fсистемной хранимой процеду ры sp_attach_db, которая напрямую работает с системной таблицей sysdatabases 0 01 Fи таблицами са мой базы данных, внося в нее необходимые изменения. Если присоединение участвующей в репликации базы данных 0 0 1 Fвыполняется не на «родном» серве ре, то необходимо удалить поддержку репликации. Для этого используется хранимая процедура sp_removedbreplication [@dbname =] "dbname". О collation_name. С помощью этого аргумента указывается сопоставление по умолчанию для всех объектов, создаваемых в базе 0 0 1 Fданных. Это же сопостав ление будет использоваться и для системных таблиц. Разрешается указывать как сопоставления Windows, так и сопоставления SQL Server. 0 01 FЕсли сопос тавление не указывается, то для базы данных будет использоваться 0 0 1 Fсопос тавление, определенное на уровне сервера, то есть то сопоставление, которое было выбрано при установке SQL Server 2000. Как видно из синтаксиса команды CREATE TABLE и уже 0 0 1 Fрассмотренных аргу ментов этой команды, при создании базы данных можно определить набор файлов, из которых будет состоять создаваемая база данных. Уже было сказано, что файл определяется с помощью конструкции <fi1espec>, синтаксис которой приведен ниже. Эта конструкция имеет одинаковый формат для всех типов файлов 0 0 1 F(первич ного, вторичного и журнала транзакций). Чтобы 0 0 1 Fсоответствующий файл был пер вичным, перед его определением необходимо указать ключевое слово PRIMARY. Журнал транзакций определяется с помощью ключевого слова LOG ON. Если ни одно из этих ключевых слов не указывается (указывается только слово ON), то соответствующий файл будет вторичным. Дополнительно файлы данных могут быть включены в группы. Это будет рассмотрено несколько позже в этом же разделе. < filespec > ( [ NAME = Iogica1_file_name , ] FILENAME = "os_file_name" [ , SIZE = size ] [ . MAXSIZE = { max_size | UNLIMITED } ] [ . FILEGROWTH = growthj increment ] ) [ . ...n ] Рассмотрим назначение используемых аргументов. О NAME = logical_file_name. Логическое имя файла, под которым он будет опознаваться при выполнении различных команд Transact-SQL. Логическое имя файла должно быть уникальным в пределах базы данных. Имя файла журнала транзакций не должно совпадать с 0 0 1 Fименем файла самой базы дан ных. Использование ключевого слова NAME не требуется, если выполняется присоединение базы данных, 0 0 1 Fоднако таким образом можно указать новое ло гическое имя для физического файла. О FILENAME = "os_f 11 e_name". Если с помощью предыдущего 0 0 1 Fаргумента указы валось логическое имя файла, то рассматриваемый аргумент предназначен для указания полного пути и названия 0 0 1 Fсоответствующего физического файла, ко торый будет создан на жестком диске. Это имя будет иметь файл на уровне операционной системы. Если вы воспользуетесь какой-либо программой 0 0 1 Fпро смотра диска, то после успешного выполнения команды CREATE DATABASE сможете увидеть файл с указанным именем. Напомним, что SQL Server 2000 не позволяет создавать файлы базы данных на сжатых томах и сетевых дисках. По умолчанию для файлов баз данных используются расширения .mdf, .ndf и .Idf соответственно для первичного, вторичных файлов и файлов журнала транзакций. В принципе, вы можете указать любое другое расширение, но вряд ли найдется серьезная причина делать это. Чтобы не создавать путаницы, советуем оставлять значения по умолчанию, то есть при описании файла не указывать расширение. О SIZE = size. С помощью этого аргумента указывается первоначальный 0 0 1 Fраз мер, который будет иметь соответствующий файл. Размер может быть указан либо в мегабайтах, либо в килобайтах. Для явного задания величины можно использовать приставки М b и К Ь. По 0 0 1 Fумолчанию считается, что размер задает ся в мегабайтах. Минимальный размер файла составляет 512 Кбайт. 0 01 FЕсли раз мер файла не указывается явно, то по умолчанию будет создан файл размером > 1 Мбайт. Отметим, что в качестве размера файла разрешается задавать только целочисленные значения. Таким образом, 0 0 1 Fесли необходимо задать дробное ко личество мегабайт, следует указать соответствующее значение в килобайтах. О FILEGROWTH = growth_iincrement. При описании физической архитектуры базы данных в главе 4 было сказано, что начиная с SQL Server 0 01 F7.0 поддерживает ся автоматическое увеличение (auto grow) 0 0 1 Fразмера базы данных, что реали зуется путем последовательного 0 0 1 Fавтоматического увеличения размеров фай лов, входящих в состав базы данных. SQL Server 2000 позволяет контролировать величину 0 0 1 Fприроста каждого из файлов базы данных отдель но от других, задавая шаг прироста не на уровне базы данных, а на уровне отдельного файла. С помощью рассматриваемого аргумента задается 0 0 1 Fвеличи на прироста файла базы данных. Шаг прироста может быть 0 0 1 Fуказан как в аб солютном выражении в виде конкретного количества мегабайт (М Ь) или килобайт (Kb), так и в относительном в виде определенного процента (%) от первоначального размера файла. По умолчанию предполагается, что 0 01 Fуказы вается значение в мегабайтах. Если аргумент FILEGROWTH опущен, то файл будет увеличиваться на 10 % от первоначального объема. Минимальный 0 0 1 Fраз мер, на который может быть увеличен файл, составляет 64 Кбайт. Отметим, что в сумме первоначальный размер файла и выбранный шаг прироста не должны превышать указанный максимальный размер файла. О MAXSIZE = { max_size | UNLIMITED }. Автоматическое увеличение файлов связано с определенными проблемами. В частности, если диск с файлом базы данных используется для аргументом WITH TERMINATION, который будет рассмотрен далее. О ADD FILE <fi1espec> [, . . .n]. Этот аргумент используется, когда в базу данных необходимо добавить новые файлы данных. Как видно из 0 0 1 Fсинтакси са, одновременно можно добавить множество файлов. Как и при работе с командой CREATE DATABASE, файлы описываются с помощью конструкции <filespec>, синтаксис и использование которой 0 0 1 Fбыли рассмотрены в преды дущем разделе при рассмотрении создания базы данных. • ТО FILEGROUP f 11 egroup_name. Используется в сочетании с 0 0 1 Fпредыдущим ар гументом для добавления файлов в определенную 0 0 1 Fгруппу файлов. Если ар гумент ТО FILEGROUP не указывается, то файлы будут добавлены в группу файлов по умолчанию. О ADD LOG FILE <f11espec> [, . . .n]. Если с помощью двух 0 0 1 Fпредыдущих ар гументов можно добавлять в базу данных файлы данных, то аргумент ADD LOG FILE используется для добавления в базу данных одного или более файлов журнала транзакций. О REMOVE FILE 1 ogica1_fi 1 e_name. В противоположность 0 0 1 Fпредыдущим, с по мощью рассматриваемого аргумента 0 0 1 Fосуществляется удаление из базы дан ных одного из файлов. Отметим, что за одну команду ALTER DATABASE 0 01 Fмож но удалить всего один файл. Аргумент REMOVE FILE используется как для удаления файлов данных, так и для удаления файлов журнала транзакций. Однако прежде чем станет возможным удаление файла, 0 0 1 Fон должен быть ос вобожден от данных. В противном случае сервер не разрешит его удаление. Освободить файл от данных можно с помощью команды DBCC SHRINKFILE (file_name, EMPTYFILE). Аргумент EMPTYFILE предписывает распределить все данные из файла между другими файлами группы. Добавление новых данных в файл не разрешается. О ADD FILEGROUP f i legroup_name. Используется для создания в базе данных группы файлов с указанным именем. Как видно из синтаксиса, при создании группы не указывается, какие файлы должны в нее войти. Перенос существующих файлов в новую группу выполняется отдельно. В базе данных может быть создано до 256 групп файлов. Напомним, что группы файлов создаются только для файлов данных. Файлы журнала транзакций не могут быть организованы в группы. О REMOVE FILEGROUP filegroup_name. Используется для удаления из 0 0 1 Fбазы дан ных указанной группы файлов. При этом также будут удалены все файлы, включенные в эту группу. Однако перед 0 0 1 Fвыполнением этой операции необ ходимо предварительно удалить из файлов все данные. О MODIFY FILE <fi lespec>. Используется для изменения параметров файла базы данных, таких как логическое имя (NAME), первоначальный размер (SIZE), 0 01 Fмак симальный размер (MAXSIZE) и шаг приращения (FILEGROWTH). 0 01 FЗа один вы зов команды ALTER DATABASE может быть изменен только один параметр одного из файлов. Хотя для описания файла и используется конструкция <fi! espec>, ее синтаксис несколько иной, чем при создании базы данных. Отличительной особенностью является наличие аргумента NEWNAME, 0 01 Fс помо щью которого можно изменить логической имя 0 0 1 Fфайла. В остальном же син таксис и использование конструкции аналогичны рассмотренным ранее. <filespec> ::= ( NAME = logical_file_narne [ . NEWNAME = new_log1cal_name ] [ , FILENAME = "os_file_name" ] [ . SIZE = size ] [ . MAXSIZE = { max_s1ze | UNLIMITED } ] [ . FILEGROWTH = growthjncrement ] ) О MODIFY NAME = new_dbname. Как нетрудно догадаться, этот 0 0 1 Fаргумент позво ляет изменять имя базы данных. Для этого достаточно всего-навсего указать новое имя с помощью параметра new_dbname. О MODIFY FILEGROUP fi1egroup_name NAME = new_fi1egroup_name. Помимо изменения имени базы данных также можно переименовать 0 0 1 Fи отдельную груп пу файлов. Это и делается с помощью рассматриваемого аргумента. Все, что нужно для изменения имени 0 0 1 Fгруппы, — указать текущее имя с помощью па раметра f i I egroup_name и новое имя— с помощью параметра new_fiIegroup_name. О MODIFY FILEGROUP fi1egroup_name filegroup_property. Этот аргумент позволяет управлять свойствами группы файлов. Имя группы файлов, свой- • ства которой предполагается изменить, задается параметром f i I egroup_name, тогда как параметр f i I egroup_property предназначен для указания свойства, которое должно быть назначено для группы файлов. 0 0 1 FПоддерживаются сле дующие значения параметра f ilegroup_property. * READONLY. При указании этого значения группа файлов 0 0 1 Fпереводится в ре жим «только для чтения». В этом режиме запрещается выполнение любых модификаций данных в файлах, принадлежащих соответствующей группе. Переключение группы 0 0 1 Fфайлов в режим «только для чтения» могут выпол нять только пользователи, имеющие монопольный доступ к базе данных. Нельзя устанавливать в режим «только для чтения» первичную группу файлов, так как в этом случае системные таблицы будут заблокированы и выполнение любых изменений в базе данных (в том числе и отмена для группы файлов режима «только для чтения») станет невозможным. * READWRITE. Действие этого значения обратно предыдущему. 0 0 1 FИспользует ся для разрешения изменений в группе файлов, установленной в режим «только для чтения». Работа с этим 0 0 1 Fзначением, как и с предыдущим, раз решена только пользователям, 0 0 1 Fимеющим монопольный доступ к базе дан ных. * DEFAULT. Используется для маркировки указанной группы файлов как группы файлов по умолчанию (default filegroup). В эту группу файлов будут включаться все файлы данных, которые явно не включены ни в какую другую группу файлов. Более того, все объекты (индексы, таблицы и их столбцы), для которых явно не указано, в какой группе файлов они должны располагаться, будут размещены в группе файлов по умолчанию. Группа файлов, которая до этого была группой файлов по умолчанию, становится обычной группой. О WITH <termination>. Вполне возможна ситуация, когда попытка изменения базы данных происходит при выполнении какой-либо транзакции. Как уже говорилось, эти две операции несовместимы и 0 0 1 Fодна из них должна быть от ложена до окончания другой. То есть администратор должен либо подождать завершения всех активных 0 0 1 Fтранзакций, либо принудительно прервать их вы полнение. В первом 0 0 1 Fслучае администратор может довольно долго ждать за вершения всех транзакций. Более того, ничто не помешает пользователям начинать новые транзакции. В предыдущих версиях, в том числе и в SQL Server 7.0, это было единственным решением. К счастью, в SQL Server 2000 появилась возможность принудительного прерывания всех пользовательских транзакций. Именно для этого и используется аргумент WITH <ternnnation>, который определяет метод прерывания транзакций. Синтаксис конструкции <termination> следующий: < termination > ::= ROLLBACK AFTER integer [ SECONDS ] | ROLLBACK IMMEDIATE | NO WAIT » ROLLBACK AFTER num_second [SECONDS] — в этом случае сервер будет ожидать указанное количество секунд, прежде чем прервет все активные и обслуживание баз данных транзакции. Предварительно можно отправить пользователям сообщение по сети, 0 0 1 Fчто через столько-то секунд все транзакции будут принудитель но откачены. За это время пользователи должны либо зафиксировать, либо откатить свои транзакции. * ROLLBACK IMMEDIATE — в этом случае откат пользовательских транзакций выполняется немедленно без каких-либо пауз. » NO WAIT— как и в предыдущем случае, откат происходит сразу же. О COLLATE < conation_name >. С помощью этого аргумента указывается 0 0 1 Fсопо ставление по умолчанию для всех объектов, создаваемых в базе 0 0 1 Fданных. Из менение сопоставления по умолчанию не влияет на 0 0 1 Fсопоставления, исполь зуемыми уже созданными объектами базы данных. Разрешается указываться как сопоставления Windows, так и сопоставления SQL Server. 0 01 FОпределяет со поставление для базы данных. По умолчанию задается сопоставление SQL Server. О SET <optionspec> [ , . . . n ]. С помощью аргумента SET пользователь может управлять различными свойствами базы данных. Свойства 0 0 1 Fуказываются с по мощью конструкции <optionspec>, которая имеет 0 0 1 Fдовольно объемную струк туру. Более подробно управление 0 0 1 Fсвойствами базы данных будет рассмотре но далее в этой главе в разделе «Управление свойствами базы данных». В предыдущих версиях SQL Server, включая и SQL Server 7.0, не поддерживалась 0 0 1 Fвозможность из менения свойств базы данных с помощью команды ALTER DATABASE. Уменьшение размера базы данных В одном из предыдущих разделов этой главы было рассказано о возможности SQL Server 2000 автоматически увеличивать размер баз 0 0 1 Fданных. Однако неред ко требуется выполнить и обратный процесс — 0 0 1 Fуменьшение размера базы дан ных. Действительно, если из базы данных удаляется значительная часть данных или после нескольких дней 0 0 1 Fнапряженной работы пользователи существенно сни жают нагрузку на сервер и в журнале транзакций образуется много свободного DBCC SHRINKDATABASE, так как при ее вызове явно указывается имя нужной базы данных. После выполнения команды сервер выдаст примерно следующее сообщение: Dbld Fileld CurrentSize MinSize UsedPages EstimatedPages 5 2 96 63 96 56 (1 row(s) affected) DBCC execution completed. If DBCC printed error messages, contact your system administrator. Рассмотрим назначение столбцов в полученном результате. О Dbld — идентификационный номер базы данных. Этот номер-будет одинаков для всех отображаемых строк. О Fileld— идентификационный номер файла базы данных, размер которого был уменьшен в процессе сжатия базы данных. Если некоторые файлы не были сжаты, то информация о них не выводится. О CurrentSize— количество страниц, которое имеется в файле, причем 0 0 1 Fучи тываются как заполненные, так и свободные страницы. О MinimumSize— минимальное количество страниц, до которого может быть уменьшен файл. Это значение может ограничиваться начальным размером файла, установленным при его создании. В ином случае оно равно значению в столбце EstimatedPages. О UsedPages— количество страниц, содержащих данные. О EstimatedPages— количество страниц, до которого может быть сжат файл. Однако не всегда файл может быть сжат до указанного размера, так как нельзя установить размер файла меньше первоначального. Список баз данных и соответствующих идентификационных номеров хранится в таблице sysdatabases системной базы данных master. Для получения идентификационного номера базы данных можно использовать команду DB_ID ("databasename"). Если же необходимо определить имя базы данных по идентификационному номеру, то можно воспользоваться командой DB_NAME(database_id). Команда DBCC SHRINKDATABASE работает с целой базой данных. 0 0 1 FЕсли же не обходимо уменьшить размер конкретного файла базы 0 0 1 Fданных, то для этого сле дует использовать команду DBCC SHRINKFILE, имеющую следующий синтаксис: DBCC SHRINKFILE ( { filejname | fllejd } { [ . target_size ] j [ . { EMPTYFILE | NOTRUNCATE | TRUNCATEONLY } ] Выполнение этой команды, в отличие от команды DBCC SHRINKDATABASE, должно производиться в контексте той базы 0 0 1 Fданных, файл которой предполага ется уменьшить. Напомним, что для переключения баз данных используется команда USE. Рассмотрим назначение аргументов команды DBCC SHRINKFILE. О f i 1 e_name | f i 1 e_i d. Имя файла, который необходимо сжать, или его иден- тификационный номер. Для получения идентификационного номера файла базы данных можно использовать команду FILE_ID: FILE ID ("filename") ПРИМЕЧАНИЕ Список файлов базы данных, их идентификационных номеров, 0 0 1 Fлогических и физических имен хра нится в таблице sysfiles каждой базы данных. О target_size. Желательный размер (целое число в мегабайтах), который 0 0 1 Fдол жен иметь файл после выполнения сжатия. Если размер не указывается, то файл сжимается до минимально возможного размера. 0 0 1 FПри выполнении ко манды DBCC SHRINKFILE сервер при необходимости выполняет перемещение данных из части файла, которая должны быть удалена, в ту часть, которая будет оставлена. Если размер target_size 0 01 Fменьше, чем минимально возмож ный размер 0 0 1 Fфайла, то сжатие файла будет выполняться только до минималь но возможного размера. Например, если файл размером 20 Мбайт содержит 14 Мбайт данных, а пользователь пытается сжать его до 10 Мбайт, то файл будет сжат только до 14 Мбайт. Если размер файла после сжатия становится меньше первоначального размера, то новый размер становится минимальным размером файла. О EMPTYFILE. При использовании этого аргумента сервер выполняет 0 0 1 Fперенос дан ных из файла в другие файлы, включенные в ту же 0 0 1 Fгруппу, что и сжимае мый файл. Сервер не будет добавлять новые 0 0 1 Fданные в файл, сжатый с аргу ментом EMPTYFILE. Такой файл может быть уничтожен с помощью команды ALTER DATABASE REMOVE FILE. О NOTRUNCATE. Использование этого аргумента предписывает серверу 0 0 1 Fне возвра щать освободившееся место операционной системе. Таким образом, размер файла на самом деле не уменьшается. Данные в файле располагаются более компактно и смещаются к началу файла. Если аргумент NOTRUNCATE 0 01 Fне ука зан, то освободившееся пространство возвращается операционной системе, то есть размер файла уменьшается. О TRUNCATEONLY. При указании этого аргумента сервер выполняет 0 0 1 Fурезание ча сти файла, начиная от последней используемой страницы 0 0 1 Fдо конца файла. Зна чение аргумента target_size в этом случае 0 0 1 Fигнорируется. Никакого пере мещения данных для более компактного их расположения не предпринимается. Для сжатия файла данных базы данных pubs 0 01 Fдо 1 Мбайт введите следую щую команду: USE Pubs DBCC SHRINKFILE (pubs, 1) В результате сервер выдаст таблицу, подобную той, которая выдается при выполнении команды DBCC SHRINKDATABASE. Состав и назначение столбцов в обоих случаях аналогичны: Dbld Fileld CurrentSize MinimumSize UsedPages EstimatedPages 5 1 296 80 288 288 (1 row(s) affected) DBCC execution completed. If DBCC printed error messages, contact your system administrator. Удостоверимся, что файлом с идентификационным номером 1 является файл pubs: SELECT FILE_ID("pubs") SELECT FILE_NAME(1) В итоге будет получен следующий результат: 1 (1 row(s) affected) pubs (1 row(s) affected) Права на выполнение команды DBCC SHRINKFILE выдаются таким 0 0 1 Fже обра зом, как и для команды DBCC SHRINKDATABASE. Для журнала транзакций или его файлов сжатие происходит не сразу, а 0 0 1 Fпри последующем выпол нении операции усечения (truncate) или резервного копирования. Управление свойствами базы данных Помимо перечисленных выше физических параметров (описывающих 0 0 1 Fв основ ном имена, размеры, положение и другие характеристики файлов) база данных имеет еще и логические параметры. К этим параметрам относятся выполнение автоматического усечения журнала 0 0 1 Fтранзакций, автоматическое создание и об новление статистики, возможность выполнения вложенных триггеров и другие. Управление этими параметрами конфигурации базы данных сводится к их 0 0 1 Fраз решению или запрещению и осуществляется с помощью системной хранимой процедуры sp_dboption. Назначение основной 0 0 1 Fчасти параметров было рассмот рено в главе 11. Синтаксис хранимой процедуры sp_dboption следующий: sp_dboption [[@dbname =] "database"] [. [@optname =] "optionjiame"] [. [@optva"lue =] "value"] Аргумент "database" содержит имя базы данных, в которой необходимо выполнить изменение конфигурации. Аргумент "value" определяет значение параметра. Возможны два варианта: значение ON или TRUE (параметра задан) и значение OFF или FALSE (параметра не задан). Аргумент "option_name" 0 01 Fопре деляет имя параметра, который необходимо изменить. Возможные значения этого аргумента приведены 0 0 1 Fв табл. с кратким указанием назначения каж дого параметра. Таблица. Параметры конфигурации базы данных Параметр Назначение' | { AUTO_UPDATE_STATISTICS ON | OFF } < sql_option > ::= ANSI_NULL_DEFAULT { ON | OFF } | ANSI_NULLS { ON | OFF } j ANSI_PADDING { ON | OFF } j ANSIJIARNINGS { ON | OFF } | ARITHABORT { ON | OFF } | CONCAT_NULL_YIELDS_NULL { ON | OFF } | NUMERIC_ROUNDABORT { ON | OFF } | QUOTEDJDENTIFIER { ON J OFF } | RECURSIVEJRIGGERS { ON | OFF } < recovery_option > ::= RECOVERY { FULL | BULK_LOGGED | SIMPLE } | TORN_PAGE_DETECTION { ON | OFF } Практически все перечисленные аргументы были рассмотрены либо в этой главе, либо в главе 11. Поэтому мы не будет лишний раз на них останавливаться. Присоединение и отсоединение базы данных SQL Server 2000 позволяет отсоединять (detach) базы данных от 0 0 1 Fсервера. Пользо ватели не могут обращаться к отсоединенным базам 0 0 1 Fданных. Описание отсоеди ненной базы данных, включая описание файлов журнала транзакций и самой базы данных, удаляется из системных таблиц SQL Server и, таким образом, сервер перестает ее воспринимать. Позже эту базу данных можно присоединить (attach) на этом же или другом сервере. Отсоединение и присоединение в основном используются для переноса баз данных с одного диска или сервера на другой. Если требуется скопировать базу данных на один или несколько удаленных 0 0 1 Fсерверов, можно выполнить резерв ное копирование базы данных и разослать копии. Другой способ — выполнить отсоединение базы данных и разослать пользователям все ее файлы. У себя на сервере пользователи смогут выполнить присоединение базы данных и сразу же начать работать с ней. Процедура отсоединения и присоединения 0 0 1 Fзанимает го раздо меньше времени, чем создание и восстановление резервной копии. Кроме того, отсоединенную базу данных можно 0 0 1 Fзаписать на компакт-диски и разо слать пользователям. Пользователи 0 0 1 Fсмогут работать с базой данных непосред ственно с компакт-диска в режиме «только для чтения». Такой подход особенно эффективен при рассылке каталогов, которые не должны изменяться. Если планируется скопировать базу данных на компакт-диск, 0 0 1 Fпредварительно необходимо устано вить все ее группы файлов в режим «только для чтения». Для этого используется команда ALTER DATABASE MODIFY FILEGROUP filegroup_name READONLY. Выполнять операции присоединения и отсоединения базы данных 0 0 1 Fмогут толь ко члены фиксированной роли сервера sysadmin. Эти права 0 0 1 Fне могут быть пе реданы никаким другим способом, кроме как включением пользователей в эту фиксированную роль сервера. Для отсоединения базы данных используется следующая хранимая процедура: sp_detach_db [@dbname =] "dbname" [, [@skipchecks =] "skipchecks"] Аргумент "dbname" указывает имя базы данных, которую 0 0 1 Fнеобходимо отсоеди нить. Аргумент "skipchecks" управляет обновлением статистики при отсоедине- Будет возвращен примерно следующий результат: The following options are set: published trunc. log on chkpt. torn page detection auto create statistics auto update statistics Как видно, возвращается список только тех параметров, которые были 0 0 1 Fуста новлены. Для получения значения конкретного параметра необходимо указать не только имя базы данных, но и имя интересующего параметра конфигурации: ЕХЕС spjboption "pubs", "ANSI null default" В результате выполнения этой команды будет получен примерно 0 0 1 Fследую щий результат: OptionName CurrentSetting ANSI null default off Если выполнить хранимую процедуру sp_dboption вообще без аргументов, то она выдаст список всех доступных параметров конфигурации: Settable database options: ANSI null default ANSI nulls ANSI padding ANSI warnings arithabort auto create statistics auto update statistics autoclose autoshrink concat null yields null cursor close on commit dbo use only default to local cursor merge publish numeric roundabort offline published quoted identifier read only recursive triggers select into/bulkcopy single user subscribed torn page detection trunc. log on chkpt. Помимо хранимой процедуры sp_dboption для получения значения тех же и некоторых дополнительных параметров конфигурации можно использовать следующую команду: DATABASEPROPERTY ("database_name". "property") Аргумент database_name должен содержать имя базы данных, 0 0 1 Fсвойства ко торой необходимо просмотреть. Возможные значения аргумента property и их назначение перечислены в табл. 14.2. Таблица Аргументы команды DATABASEPROPERTY Аргумент IsAnsiNullDefault IsAnsiNullEnabled IsAnsiWarningEnabled IsAutoClose IsAutoShrink IsAutoUpdateStatistics IsBulkCopy IsCloseCursorOnCommit- Enabled IsDboOnly IsDetached IsEnergencyMode IsFulltextEnabled IsInLoad IsInRecovery IsInStandby IsLocalCursorsDefault IsNotRecovered IsNullConcat IsOffline IsQuotedldentifiersEnabled leReadOnly IsRecursiveTriggersEnabled IsShutDown Назначение Аналог аргумента "ANSI null default" процедуры sp_dboption Аналог аргумента "ANSI nulls" процедуры sp_dboption Аналог аргумента "ANSI warning" процедуры sp_dboption Аналог аргумента "autoclose" процедуры sp_dboption Аналог аргумента "autoshrink" процедуры sp_dboption Аналог аргумента "auto update statistic" процедуры sp_dboption Аналог аргумента "select into/bulk copy" процедуры sp_dboption Аналог аргумента "cursor close on commit" процедуры spjdboption Аналог аргумента "dbo use only" процедуры sp_dboption База данных отделялась командой sp_detach Разрешение работы с «подозрительной» базой Поддержка полнотекстового поиска База данных была загружена из резервной копии Выполняется восстановление базы данных База данных работает в режиме «только для чтения» Аналог аргумента "default to local cursor" процедуры sp_dboption Восстановление базы данных завершилось с ошибкой Аналог аргумента "concat null yields null" процедуры sp_dboption Аналог аргумента "offline" процедуры sp_dboption Аналог аргумента "quoted identifier" процедуры sp_dboption Аналог аргумента "read only" процедуры sp_dboption Аналог аргумента "recursive triggers" процедуры sp_dboption В базе при запуске сервера возникают ошибки__ продолжение & Для получения информации о конкретном файле базы данных можно 0 0 1 Fис пользовать следующую хранимую процедуру: sp_helpfile [[^filename = ] "name"] Эта процедура выдает информацию о файле в следующих столбцах: О Name — логическое имя файла в базе данных; О Filename— физическое имя файла в операционной системе, которое 0 0 1 Fвклю чает полный путь к файлу; О Filegroup— имя группы файлов, к которой принадлежит файл; О Si ze — текущий размер файла; О Maxsize— максимальный размер файла, установленный при его создании; О Growth — шаг прироста размера файла; О Usage— тип использования файла; возможно одно из двух значений: data only (файл используется для хранения данных) или log on!у 0 0 1 F(файл исполь зуется для хранения журнала транзакций). Для получения информации о группе файлов можно использовать 0 0 1 Fследую щую хранимую процедуру: sp_helpfilegroup [[Ofilegroupname =] "name"] Эта хранимая процедура выполняется в контексте базы данных, 0 0 1 Fинформа цию о которой необходимо получить. В результате 0 0 1 Fвыполнения процедуры бу дет выдана информация об идентификационном номере группы, количестве включенных в нее файлов, а также информация о самих файлах. Для получения информации о группе файлов PRIMARY базы данных pubs можно использовать следующую команду: ЕХЕС sp_helpf11egroup "primary" Будет получен примерно следующий результат: groupname groupid fllecount PRIMARY 1 1 f11e_in_group fileid filename size maxsize growth pubs 1 pubs.mdf 2688 KB Unlimited Ш В столбце Filename будет указан полный путь к файлу. Для просмотра информации об использовании пространства внутри 0 0 1 Fбазы дан ных можно применить следующую, системную хранимую процедуру: sp_spaceused [[@objname =] "objname"] [, [@updateusage =] "updateusage"] Аргумент "objname" содержит имя таблицы базы данных, о которой 0 0 1 Fнеобхо димо получить информацию. Аргумент "updateusage" управляет выполнением команды DBCC UPDATEUSAGE и может принимать значения TRUE или FALSE. Если процедура sp_spaceused запускается без аргументов, то будет 0 0 1 Fвыведе на информация об использовании пространства в текущей базе 0 0 1 Fданных. В ре зультате выполнения sp_spaceused в контексте базы данных pubs будет получен примерно следующий результат: database_name pubs reserved da ta database_s1ze 3.63 MB Index size unallocated space 1.10 MB unused 2584 KB 1120 KB 1288 KB 176 KB Как видно, результат состоит из двух наборов. В столбце database_name указано имя базы данных, о которой выводится информация, в столбце database_s1 ze — первоначальный размер базы данных, а в столбце unal I ocated space— пространство, которое было освобождено при сжатии. В столбце reserved отображается сумма зарезервированного для базы 0 0 1 Fданных про странства (database_size - "unallocated space" = data + index_size + unused). В столбце data указан объем памяти, занимаемый данными, а в столбце index_size— объем памяти, занимаемый 0 0 1 Fиндексами. Размер свободного про странства в базе данных выводится в столбце unused. Чтобы получить информацию об использовании пространства в таблице titleauthor, можно использовать следующую команду: ЕХЕС sp_spaceused " titleauthor" В результате процедура выдаст примерно следующее: name rows reserved data index_size unused titleauthor 25 48 KB 8 KB 40 KB 0 KB В столбце name указано имя таблицы, о которой выводится информация, а в столбце rows — число строк данных, которое введено в таблице. Объем памяти, выделенный в базе данных для таблицы, указывается в столбце reserved (data + index_s1ze + unused). В столбце data указан объем памяти, занимаемой данными, хранящимися в таблице, а в столбце i ndex_si ze 0 01 F— объем памяти, отве денный для индекса. Объем свободного пространства указывается в столбце unused Для получения информации о журнале транзакций Transact-SQL предлагает команду DBCC SQLPERF, выдающую информацию об использовании журналов транзакций в каждой из баз данных, созданных на сервере. Для получения информации об использовании журналов транзакций нужно выполнить следующую команду: DBCC SQLPERF (LOGSPACE) В результате будет выдана следующая информация: DatabaseName LogSize(MB) Log Space Used ( % ) Status Samp! e_3 1.9921875 33.039215 0 Sample_2 1.9921875 34.264706 0 Sample 1 1.9921875 33.553921 0 Distribution 0.9921875 56.98819 0 Abba 0.9921875 38.877953 0 содержит столбцы status, field, name и filename, назначение которых 0 0 1 Fаналогично. Для просмот ра информации о файлах базы данных с помощью таблицы sysfilesl можно выполнить следующую команду: SELECT * FROM sysfilesl В итоге будет возвращен следующий результат: status fileid name filename 3 1 pubs ...\data\pubs.mdf 49218 2 pubsjog ...\data\pubs_log.ldf (2 row(s) affected) Описание групп файлов, созданных в базе данных, хранится в системной таблице sysfilegroups. Каждая строка этой таблицы соответствует одной группе. Структура этой таблицы приведена в табл. Таблица. Структура таблицы sysfilegroups Имя столбца Тип данных Назначение GroupID Allocpolic y Status Groupnam e Smallint Smallint Ins Sysname Идентификационный номер группы файлов Зарезервировано Текущий статус группы: 0x8— READONLY, 0x10 — Имя группы файлов DEFAULT Например, для получения информации о группах файлов, определенных в базе данных pubs, можно использовать следующий запрос: SELECT * FROM sysfilegroups Будет возвращен примерно следующий результат: groupld allocpolicy status groupname 1 0 16 PRIMARY (1 row(s) affected) Удаление базы данных Для удаления базы данных используется следующая команда: DROP DATABASE databasejiame [,...n] Аргумент database_name указывает имя базы данных, которую необходимо удалить. Одной командой можно удалить несколько баз данных, перечислив их имена через запятую. Например, для удаления баз данных Pubs и Northwind нужно выполнить следующую команду: DROP DATABASE Pubs. Northwind Управление пользовательскими типами данных В главе 5 в разделе «Типы данных» были рассмотрены встроенные в 0 0 1 FSQL Ser ver 2000 типы данных. Эти типы данных всегда имеются в 0 0 1 Fраспоряжении пользо вателей и могут быть использованы для 0 0 1 Fстолбцов таблиц, представлений, пере менных и т. д. Однако помимо встроенных типов данных пользователи могут на их основе создавать 0 0 1 Fсвои собственные типы данных — так называемые пользо вательские типы данных. Пользовательские типы данных (user-defined data type) — это типы данных, создаваемые пользователями. Они создаются на основе 0 0 1 Fсистемных типов дан ных. Пользовательские типы данных часто используются, когда в нескольких таблицах необходимо хранить однотипные значения, причем гарантировать, что столбцы в таблице 0 0 1 Fбудут иметь одинаковый размер, тип данных и чувствитель ность к данным NULL. Например, с помощью пользовательского типа данных можно хранить номера и серии паспорта. Для создания пользовательского типа данных используется 0 0 1 Fсистемная хра нимая процедура sp_addtype: sp_addtype [ @typename = ] type. [ @phystype = ] system_data_type [ . [ @nulltype = ] "null_type" ] [ , [ @owner = ] "owner name" ] Если необходимо сделать пользовательский тип данных доступным во 0 0 1 Fвсех создаваемых базах дан ных, добавьте этот тип в базу данных model. Здесь используются следующие аргументы. О type — имя создаваемого типа данных. При выборе имени создаваемого типа данных необходимо следовать установленным 0 0 1 Fправилам именования объек тов. Имя должно быть уникальным в 0 0 1 Fпределах владельца, то есть не совпа дать с именами других 0 0 1 Fобъектов. Разные пользователи могут употреблять оди наковые имена для создаваемых объектов. О system_data_type — системный тип данных, на основе которого создается пользовательский тип данных. Можно выбрать один из следующих типов данных: "binary (n)" Image smalldatetime Bit Int smallint "char(n)" "nchar (n)" ' text Datetime Ntext tinyint Decimal Numeric uniqueidentifier "decimal[(p[,s])]" "numeric[(p [,s])]" "varbinary(n)" Float "nvarchar (n)" "varchar(n)" "float(n)" Real Кавычки необходимы, когда помимо самого типа данных требуется указание дополнительных параметров. Аргумент п идентифицирует длину системного типа данных в пользовательском типе данных, аргумент р — максимальное суммарное (до и после десятичной точки) количество цифр для числовых типов данных в пользовательском типе данных, аргумент s — максимальное количество десятичных цифр после запятой в пользовательском типе данных. Нельзя создать пользовательский тип данных на основе системного типа timestamp. О "null _type". Значение этого аргумента определяет, будет ли пользовательский тип данных хранить значения NULL Аргумент null_type имеет тип varchar(S) 0 01 Fи мо жет принимать одно из трех следующих значений: NULL (разрешается хранение NULL), NOT NULL (хранение NULL запрещается) или NONULL (используется 0 0 1 Fзначение по умол чанию). Если аргумент null_type не указывается,
Docsity logo