[ SQL Server 2000 ] |
Безліч значень А [i, j] при постійному i і всіх можливих j утворюють кортеж (або просто рядок таблиці). Кількість усіх кортежів у відношенні визначає його потужність, або кардинальне число. Потужність відносини в табл. 2.2 дорівнює 5. Потужність відносини, на відміну від порядку відносини, може з часом змінюватися. Сукупність усіх кортежів утворює тіло відносини (чи власне таблицю). Оскільки відносини є математичними множинами, які за визначенням не можуть містити співпадаючих елементів, ніякі два кортежу у відношенні не можуть бути дублікатами один одного в будь-який момент часу. Кожен стовпець (поле) має ім'я, яке зазвичай записується у верхній частині таблиці. При проектуванні таблиць в рамках конкретної СУБД є можливість вибрати для кожного поля його тип, тобто визначити набір правил за його відображення, а також визначити ті операції, які можна виконувати над даними, що зберігаються в цьому полі. Набори типів можуть різнитися в різних СУБД. Ім'я поля повинно бути унікальним в таблиці, проте різні таблиці можуть мати поля з однаковими іменами. Будь-яка таблиця повинна мати, принаймні, одне поле, поле розташовані в таблиці відповідно до порядку проходження їхніх імен при її створенні. На відміну від полів, рядки не мають імен, порядок їх слідування в таблиці не визначено, а кількість логічно не обмежена. Так як рядки в таблиці не впорядковані, не можна вибрати рядок за її позиції - серед них не існує «першою», «другий», «останньою». Будь-яка таблиця має один або декілька стовпців, значення в яких однозначно ідентифікують кожну її рядок. Такий стовпець (або комбінація стовпців) називається первинним ключем (primary key). У таблиці Спортивна секція первинний ключ - це стовпець П.І.Б. Такий вибір первинного ключа має істотний недолік: неможливо записати в секцію двох дітей з одним і тим ж значення поля П.І.Б., що на практиці зустрічається не так уже й рідко. Саме тому часто вводять штучне поле, призначене для нумерації записів у таблиці. Таким полем, наприклад, може бути його порядковий номер у журналі для кожної дитини, яка зможе забезпечити унікальність кожного запису в таблиці. Ключ повинен володіти такими властивостями. Про Унікальністю. У кожний момент часу ніякі два різних кортежу відношення не мають однакового значення для комбінації входять у ключ атрибутів. Тобто в таблиці не може бути двох рядків, які мають однаковий ідентифікаційний номер або номер паспорта. Про мінімальний. Жоден з вхідних в ключ атрибутів не може бути виключений з ключа без порушення унікальності. Це означає, що не варто створювати ключ, що включає і номер паспорта, та ідентифікаційний номер. Досить використовувати будь-який з цих атрибутів, щоб однозначно ідентифікувати кортеж. Не варто також включати в ключ неунікальний атрибут, тобто забороняється використання в якості ключа комбінації ідентифікаційного номера та імені службовця. При виключенні імені службовця з ключа все одно можна унікально ідентифікувати кожен рядок. Виконання умови унікальності є обов'язковим. У той же час при необхідності може бути допущено порушення умови мінімальності. Кожне відношення має, принаймні, один можливий ключ, оскільки сукупність всіх його атрибутів задовольняє умові унікальності - це випливає з самого визначення ставлення. Один з можливих ключів довільно вибирається в якості первинного ключа. Інші можливі ключі, якщо вони є, приймаються за альтернативні ключі. Наприклад, якщо в якості первинного ключа вибрати ідентифікаційний номер, то номер паспорта буде альтернативним ключем. Взаємозв'язок таблиць є найважливішим елементом реляційної моделі даних. Вона підтримується зовнішніми ключами (foreign key). Розглянемо приклад. У базі даних містяться відомості про різних касредрах університету (таблиця Кафедри), а також відомості про працівників цих кафедр (таблиця Співробітники). Первинним ключем таблиці Співробітники є поле ID, а таблиці Кафедри-поле Кафедра. Поле Кафедра таблиці Співробітники є зовнішнім ключем для зв'язку з таблицею Кафедри. При описі моделі реляційної бази даних для одного і того ж поняття часто вживають різні терміни, що залежить від рівня опису (теорія чи практика) та системи (Access, SQL Server, dBase). У табл. наведена зведена інформація про використовувані термінах. Таблиця Термінологія баз даних Теорія БД_________Реляціонние БД_______SQL Server___________ Відношення (Relation) Таблиця (Table) Таблиця (Table) Кортеж (Tuple) Запис (Record) Рядок (Row) Атрибут (Attribute) Поле (Field) __ _________Столбец або колонка (Column) Коротка характеристика редакціїSQL Server 2000Перше питання, яке необхідно вирішити, перш ніж приступити безпосередньо до установки SQL Server 2000, - це вибір редакції. SQL Server 2000 постачається в кількох редакціях, що володіють різною функціональністю \ і мають свої відмітні особливості. Ви повинні вибрати саме ту 'редакцію, яка найбільше підходить для вирішення поставлених перед вами завдань. Наприклад, якщо потрібно всього-на-всього забезпечити переносний комп'ютер. з операційною системної Windows 98 високофункціональним сховищем даних, то навряд чи варто купувати SQL Server 2000 Developer Edition. Кращим рішенням буде SQL Server 2000 Personal Edition. Enterprise Edition Використовується в якості промислового сервера баз даних. Підтримує всі можливості, доступні в SQL Server 2000 і систем зберігання даних. Standard Edition Використовується в якості сервера баз даних для невеликих робочих груп. Standard Edition підтримується наступними операційними системами: .. Про 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 включає в себе тільки інструменти обробки користувальницьких запитів (engine). У цю редакцію не входять: Про графічні інструменти адміністрування (при необхідності для адміністрування цієї редакції можна використовувати графічні інструменти будь-який інший редакції); Про інструменти електронної документації Books Online; Про інструменти підтримки реплікації зведенням; Про приклади коду (code samples); Про бібліотеки розробки. Хоча здебільшого редакція Desktop Engine забезпечує ту ж функціо нальность, що і інші редакції, але має деякі обмеження. У приватно сті, не реалізовано розпаралелювання запитів, індексування уявлень та деякі інші функції, характерні для великих промислових серв рів. Крім того, якщо на сервері одночасно виконується більше п'яти паку тов команд, то продуктивність їх виконання знижується. Отличительно ^ рисою редакції Desktop Engine є також і те, що вона не вимагає клієн ських ліцензій доступу (Client Access Licenses, CAL). Всі описані характе ристики роблять SQL Server 2000 Desktop Engine ідеальним вибором при зі | будинку систем з вбудованими сховищами даних і при роботі з данник в автономному режимі (off-line). Редакція Desktop Engine поставляється у вигляді модулів Windows Installer, до якi можуть бути включені в інсталяційний пакет. 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 95/98. Однак можливість установки серверної частини SQL Server 2000, що відповідає за виконання призначених для користувача запитів, залежить від використовуваної редакції та операційної системи. Так, серверна частина SQL Server 2000 Enterprise Edition не може бути встановлена на Windows 2000 Professional, Windows NT Workstation або Windows 98. Тим не менш компакт-диск з SQL Server 2000 Enterprise Edition забезпечує установку клієнтського програмного забезпечення на будь-який з цих операційних систем. У табл. 7.1. узагальнена інформація про підтримку тієї чи іншої редакцією різних механізмів SQL Server 2000, пов'язаних з використанням баз даних (БД). Підготовка до установки Попередні розділи були присвячені розгляду різних редакцій SQL Server 2000. Коли вибір редакції залишився у минулому і у вас є компакт-диск з конкретною редакцією, можна приступати до установки SQL Server 2000. Проте перш ніж розпочати безпосередньо установку сервера, необхідно виконати деякі підготовчі операції, які допоможуть вам уникнути неприємностей в ході установки. Зокрема, перш за все необхідно переконатися, що на вашому комп'ютері встановлена операційна система, яка необхідна для функціонування тієї чи іншої редакції SQL Server 2000. Крім того, слід перевірити, чи є на жорсткому диску достатньо вільного простору для установки власне сервера, а також допоміжних і клієнтських компонентів. У цьому розділі будуть розглянуті основні вимоги, що висуваються майстром установки SQL Server 2000, а також деякі загальні рекомендації з виконання власне установки. Безпосередньо процес підготовки до установки SQL Server складається з трьох етапів: Про перевірка відповідності апаратним вимогам; Про встановлення необхідного програмного забезпечення; Про конфігурування облікових записів для служб MSSQLServer і SQLServer-Agent. Перш ніж приступати до установки, обов'язково пройдіть всі три етапи. У цьому випадку у вас не виникне складнощів в процесі установки, не доведеться переривати її і повертатися назад! Апаратні вимогиДля установки інструментарію і бібліотек Microsoft SQL Server 2000 комп'ютер повинен відповідати мінімальним вимогам до апаратного забезпечення комп'ютера (табл. 7.3). Цифри, наведені в таблиці, практично не відрізняються від аналогічних показників для SQL Server 7.0. Це пов'язано з тим, що ядро SQL Server 2000 залишилося в основному тим же, що і в SQL Server 7.0. Таблиця. Вимоги до апаратної частини Апаратна часть_Мінімальние требованія_ Комп'ютер Intel або сумісний з ним. Pentium 166 MHz або вище, Pentium PRO, Pentium III або процесор, потребується для вашої операційної системи (з урахуванням редакції SQL Server) Standard Edition: 32 Мбайт типова установка: 170 Мбайт; мінімальна установка: 65 Мбайт; встановлення тільки утиліт адміністрування: 90 Мбайт; +50 Мбайт: установка OLAP; ______________+ 12 Мбайт: установка English Query________________________ Для успішної роботи рекомендується до перерахованих вище вимогам додати розміри користувацьких баз даних, а також врахувати можливість зростання системних баз даних. Наведені вимоги зазначені в розрахунку на системи, що працюють з невеликими об'ємами даних. При збільшенні обсягу баз даних зростають і вимоги до ресурсів комп'ютера. При цьому слід враховувати і можливості редакції, яку ви використовуєте. Нагадаємо, що максимальні можливості надає редакція SQL Server 2000 Enterprise Edition, що забезпечує використання серверів з 32 процесорами і об'ємом пам'яті до 64 Гбайт. Не слід наведені в таблиці вимоги сприймати як вимоги до ресурсів ваї. комп'ютера. Дані цифри стосуються самого пакету SQL Server 2000. Крім того, слід уче вимоги операційної системи, які можуть істотно відрізнятися. Наприклад, для операційної системи Windows 98 досить буде 8-16 Мбайт оперативної пам'яті, тоді як операційній системі Windows 2000 Advanced Server для роботи необхідно, як мінімум, 128 Мбайт оперативної пам'яті. З точки зору єдиний користувач комп'ютера SQL Server 2000 може здатися досить вимогливою СУБД. Проте це досить потужний продукт, і при використанні його на промислових багатопроцесорних серверах зазначені вимоги не вважаються надмірними. Взаємодія з операційними системамиЯк вже стало ясно при описі редакцій SQL Server 2000, кожна з них працює під управлінням лише деяких операційних систем сімейства Windows. Тому вибір редакції накладає обмеження і на операційну систему, під якою буде працювати SQL Server 2000. У табл. 7.4 наведена зведена інформація про те, під управлінням яких операційних систем може працювати та чи інша редакція, а також вказано, на яких операційних системах дозволяється встановлення тільки клієнтських компонентів і з'єднання з SQL Server 2000. При установці SQL Server 2000 на комп'ютер, що працює під управлінням операційної системи Windows NT Server 4.0 або Windows NT Workstation 4.0, потрібна установка Service Pack версії 5.0 або більш пізньої. При установці SQL Server 2000 на Windows 2000 установка сервісних пакетів не потрібно. Таблиця Використання редакцій на різних операційних системах Редакція або компонент Операційні системи SQL Server 2000________________ _____________________________ Enterprise Edition Microsoft Windows NT Server 4.0, Microsoft Windows NT Server Enterprise Edition 4.0, Windows 2000 Advanced Server, Windows 2000 Data Center Server Standard Edition Microsoft Windows NT Server 4.0, Windows 2000 Server, Microsoft Windows NT Server Enterprise Edition, Windows 2000 Advanced Server, Windows 2000 Data Center Server Personal Edition Microsoft Windows 98, Windows NT Workstation 4.0, Windows 2000 Professional, Microsoft Windows NT Server 4.0, Windows 2000 Server і Windows 2000 Тільки клієнтських інструментів Всі операційні системи сімейства Windows NT і Windows 2000, а також Windows 98 і Windows 95 Як видно, жодна з редакцій SQL Server 2000 не може працювати з операційною системою Windows 95. Однак під керуванням цієї операційної системи можуть працювати клієнтські додатки, які встановлюють з'єднання з SQL Server 2000. |
Для встановлення всіх редакцій Microsoft SQL Server 2000 необхідно наявність в операційній системі Microsoft Internet Explorer 5.0. Винятком є установка в режимі Connectivity Only (тільки з'єднання), яка вимагає Microsoft Internet Explorer 4.01 з Service Pack 2 і забезпечує тільки можливість встановлення з'єднання з SQL Server 2000.
Наявність Internet Explorer необхідно для роботи програми Microsoft Management Console (MMC), за допомогою якої реалізований інструмент адміністрування Enterprise Manager, а також для роботи електронної довідкової системи Books Online, реалізованої у вигляді скомпільовані HTML-файлу. При установці SQL Server 2000 на комп'ютер з Windows 2000 встановлювати окремо броузер Internet Explorer 5.0 не доведеться, тому що він безпосередньо вбудований в цю операційну систему.
У SQL Server 2000 була додана підтримка технології XML. Однак доступ до даних з використанням цієї технології здійснюється засобами Microsoft Internet Information Server (US). Таким чином, якщо передбачається забезпечити користувачам можливість роботи з даними за допомогою технології XML, слід додатково встановити Internet Information Server. У цьому випадку необхідно врахувати, що це накладає додаткові вимоги до ресурсів комп'ютера.
При роботі з операційною системою Windows 2000 установка Internet Information Server не потрібно, тому що ця операційна система поставляється разом з п'ятою версією цього продукту.
Взаємодія з мережевим програмним забезпеченням
Всі сучасні операційні системи сімейства Windows мають вбудовану підтримку можливості роботи з мережею. У більшості випадків ніяке додаткове забезпечення не потрібно. Винятком є протоколи Banyan VINES або AppleTalk ADSP, робота з якими забезпечується продуктами третіх виробників.
Якщо планується використання SQL Server 2000 в якості корпоративного сервера баз даних, до которолгу передбачається звернення безлічі користувачів мережі, то в операційній системі необхідно встановити відповідні мережеві протоколи. Майстер установки SQL Server 2000 не виконує установку мережевих протоколів, тому ця частина роботи повинна бути виконана користувачем. SQL Server 2000 підтримує всі основні протоколи Windows 2000: NetBEUI, IPX / SPX і TCP / IP. Крім того, можлива робота по протоколах AppleTalk ADSP, Banyan VINES і деяким іншим рідко використовуваних протоколів.
Встановлення мережних протоколів ще не дає можливості працювати з SQL Server 2000. Для забезпечення цієї можливості необхідно наявність програмного інтерфейсу, який би дозволяв працювати з SQL Server 2000. Таким інтерфейсом є так звані мережеві бібліотеки (network libraries). Ці бібліотеки поставляються у складі SQL Server 2000 і автоматично встановлюються в операційній системі при установці сервера. Більш докладно архі-
тектура та конфігурування мережевих бібліотек будуть розглянуті далі в цьому розділі в розділі «Встановлення мережних бібліотек та протоколів».
В якості клієнтів SQL Server 2000 можуть виступати не тільки програми, що працюють під управлінням операційних систем сімейства Windows, а й додатки операційних систем Apple Macintosh, OS / 2, UNIX і т. д. Проте в даний час Microsoft не надає драйверів ODBC під UNIX, хоча зв'язок з клієнтами UNIX можлива. Зазначені драйвери можуть бути розроблені незалежними виробниками.
Взаємодія з продуктами Microsoft
Для взаємодії Microsoft Access 2000 з SQL Server 2000 необхідно встановити Microsoft Office 2000 Service Release 1 або Access 2000 Service Release 1. Тільки в цьому випадку ви зможете звертатися до діаграм бази даних, що зберігаються процедурами, даними про структуру таблиць і уявлень, проте ніяких внесених користувачем змін не зберігається.
При роботі з Microsoft Visual Studio ® 6.0, ви не зможете отримати доступ до діаграм бази даних, що зберігаються процедурами, даними про структуру таблиць і уявлень в SQL Server 2000. Хоча встановлення Visual Studio 6.0 Service Pack 4 і дозволить виконувати зміни, все ж таки зберегти їх не вдасться.
Якщо у вашій організації передбачається наявність декількох серверів баз даних, що взаємодіють між собою і обмінюються даними, то необхідно розробити єдину конфігурацію, яка буде реалізована на всіх серверах SQL Server вашого підприємства. Існує декілька параметрів встановлення сервера, які суттєво впливають на функціонування SQL Server і не можуть бути змінені в процесі роботи. У SQL Server 7.0 до них ставилися наступні: Про набір символів (character set); Про зіставлення Unicode (Unicode collation); Про порядок сортування (sort order).
Щоб змінити будь-яку з цих налаштувань, необхідно було перебудувати системну базу даних master за допомогою утиліти rebuildm.exe, яка дозволяє змінити порядок сортування, набір символів і зіставлення Unicode. Однак при виконанні подібного перестроювання втрачається будь-яка інформація, накопичена на сервері. У цьому плані перестроювання бази даних master можна порівняти з видаленням і встановлювати сервера. Якщо ж було необхідно зберігати власні бази даних і об'єкти, доводилося спочатку створювати сценарії (script), що описують створення всіх об'єктів, а потім копіювати дані, використовуючи можливості служб перетворення даних (Data Transformation Services, DTS) або утиліту масового копіювання (bulk copy program, bcp).
У SQL Server 2000 більше не потрібно окремо визначати кодову сторінку, використовувану для символьних даних, порядок сортування символьних даних і зіставлення для даних Unicode. Замість цього ви просто вказуєте необхідні назва зіставлення та сортування.
Фізичне зберігання символьних рядків і операції їх порівняння в SQL Server 2000 залежать від зіставлення. Зіставлення визначає виконавчі зразки, які представляють кожен символ, і правила, за якими символи сортуються і порівнюються. При роботі з SQL Server 7.0 ці параметри задавалися при установці сервера і були єдині для всіх об'єктів і даних, наявних в базах даних цього сервера.
У SQL Server 2000 значення зіставлення, вказаний при установці сервера, розглядається лише як значення за замовчуванням, яке використовується при створенні всіх об'єктів. Дозволяється створення різних зіставлень в одній і тій же базі даних одного і того ж сервера об'єктів. Більш того, в одній таблиці можуть бути стовпчики, які використовують різні зіставлення.
SQL Server 2000 підтримує два види зіставлень.
Про Зіставлення Windows (Windows Collation). Цей вид зіставлення визначає набір правил для зберігання і сортування символьних даних, заснованих на правилах, визначених для операційної системи Windows.
Про Зіставлення SQL (SQL Collation). Цей вид зіставлення забезпечує сумісність з більш ранніми версіями Microsoft SQL Server.
Кожне зіставлення SQL включає в себе наступну інформацію.
Про Порядок сортування для даних Unicode (nchar, nvarchar і ntext). Порядок сортування визначає послідовність, в якій сортуються символи, і те, як оцінюються символи при операціях порівняння.
Про Порядок сортування для символьних даних, що не відносяться до Unicode (char, varchar-і text).
Про Кодова сторінка, яка використовується для сортування символьних даних, що не відносяться до Unicode.
Щоб при установці провести зміни заданих за замовчуванням параметрів налаштування зіставлення, використовуйте вікно Collation Settings (параметри зіставлення). Варіант Collation Designator (призначення зіставлення) забезпечує настроювання параметрів зіставлення Windows, а варіант SQL Collations (зіставлення SQL) - настройку параметрів зіставлення, сумісних з SQL Server 7.0, SQL Server 6.5 або більш ранніми версіями.
Намагайтеся налаштувати параметри зіставлення так, як це необхідно для подальшої роботи, відразу під час установки. Хоча ви і зможете змінити настройки зіставлення після виконання установки, при цьому вам доведеться перебудовувати бази даних та завантажувати дані.
На одному з етапів установки у вікні Collation Settings (параметри зіставлення) майстер установки SQL Server 2000 пропонує вибрати зіставлення (collation), яке буде використовуватися за замовчуванням на сервері. Цей вибір здійснюється за допомогою списку, з варіантами допустимих зіставлень. Наприклад.
Про Варіант Latinl_General призначений для американізованого англійської набору символів (кодова сторінка 1252).
Про Варіант Modern_Spanish призначений для всіх різновидів іспанског мови, в якому використовується той же набір символів, що і в англійське (кодова сторінка 1252).
Про Варіант Arabic призначений для всіх різновидів арабської мови довая сторінка 1256).
Про Для Росії за умовчанням пропонується використовувати зіставлення Windows, що називається Cyrillic_General, тим не менш можна вказати будь-яке інше зіставлення. Також можна вибрати зіставлення SQL. У цьому випадку в розпорядженні користувача є безліч різних зіставлень, кожне з яких має свої відмінні характеристики. Зіставлення для Росії використовують набір символів 1251, тобто закінчуються на рядок for use the 1251 (Cyrillic) Character Set. На рівні сервера зазначені зіставлення відносяться до сімейства зіставлень SQL_Latinl_General. Зокрема, при виборі зіставлення Windows з ім'ям Cyrillic_General на рівні сервера буде використовуватися зіставлення SQL_Latinl_General_Cpl_CI_AS. Це зіставлення влаштує більшість користувачів. Зокрема, при порівнянні символів не враховується регістр.
Вибір порядку сортування
Зіставлення Windows визначає тільки набір символів, який буде доступний користувачам. Однак власне порівняння не визначає правила порівняння і сортування символьних даних. Тому ці параметри повинні бути налаштовані окремо. Для цього у вікні Collation Settings (параметри зіставлення) використовується набір прапорців Sort Order (порядок сортування), за допомогою яких дозволяється той чи інший метод сортування. У табл. 7.5 вказано призначення прапорців.
Таблиця. Типи сортування
Тип сортировки______Описание________________________________
Символи порівнюються відповідно до їх порядковим номером у таблиці символів. Цей вид сортування найбільш швидкий, тому що не вимагає додаткових обчислень
Одні й ті ж символи, але записані в різних регістрах, вважаються різними
Визначає, що SQL Server буде робити різницю між символами з діакритичних знаків та без нього. Наприклад, а чи не буде так само а____________________________
Binary Order (двійкова сортування)
Case-sensitive (з урахуванням регістру)
Accent-sensitive (з урахуванням діакритичних знаків)
Двійкова сортування є найшвидшим методом порівняння даних і завжди враховує регістр. Однак при використанні цієї сортування прапорці Case-sensitive (з урахуванням регістру) і Accent-sensitive (з урахуванням діакритичних знаків) будуть недоступні.
Як вже було сказано, вибрані при установці сервера параметрами? Ри зіставлення впливають на багато аспектів функціонування SQL Server 2000. Наприклад, порядок сортування грає велику роль при порівнянні пароля, введеного користувачем, з паролем, збереженим в системній базі даних. Якщо застосовується порядок сортування, чутливий до регістру символів, то при введенні пароля користувач повинен в точності дотримуватися регістр. Якщо ж використовується нечутлива до регістру сортування, то користувач може не піклуватися про регістрі, в якому він набирає пароль.
Коли ви передаєте дані користувачів (включаючи паролі) між серверами, мають різний порядок сортування, можливо два варіанти поведінки сервера, на який переносяться дані (сервера призначення).
Перший випадок має місце, коли вихідний сервер був нечутливий до регістру символів. Тоді при введенні пароля він зберігається у верхньому регістрі, і користувач може зареєструватися на другому сервері, вводячи пароль у верхньому регістрі.
Зовсім інша ситуація виникає, якщо перший сервер чутливий до регістру символів, а другий сервер - нечутливий. У цьому випадку при введенні користувачем на вихідному сервері пароля, що містить символи нижнього регістра, він не зможе зареєструватися на другому сервері. Це трапляється тому, що другий сервер перетворює всі символи в паролі, що вводиться користувачем при реєстрації, у верхній регістр, і порівняння паролів не пройде успішно, так як в базі пароль зберігається з урахуванням регістра.
SQL Server 2000 підтримує три способи установки, надаючи адміністраторам різні можливості автоматизації і спрощення процесу установки. Від вибору того чи іншого методу залежить, який набір кроків буде запропонований майстром установки.
Система SQL Server 2000 може бути встановлена з використанням одного з таких методів установки: Про Local Installation (локальна установка); Про Remote Installation (віддалена установка); Про Unattended Installation (автоматична установка).
Розглянемо більш детально використання кожного типу установки.
Локальна установка
При локальній установці всі файли SQL Server встановлюються на той комп'ютер, на якому вона ініційована.
Локальний метод установки є найпростішим з усіх підтримуваних. У цьому випадку майстер установки послідовно видає користувачеві набір вікон, в яких той повинен вказати параметри конфігурації. У процесі установки вам буде необхідно ввести своє ім'я, найменування організації і серійний номер, отриманий при купівлі SQL Server 2000. Ця інформація також необхідна, якщо ви звертаєтеся до служби технічної підтримки Microsoft. На наступних етапах необхідно ввести інформацію про розміщення файлів сервера і баз даних, кодовій сторінці, порядку сортування, зіставленні, мережевих протоколах і бібліотеках, а також відомості про облікові записи, під якими буде запускатися SQL Server. Для запуску майстра установки SQL Server 2000 необхідно запустити програму Setupsql.exe.
За замовчуванням для установки сервера вибирається папка \ Program Files \ Mic SQL Server, а бази даних розміщуються в панку \ Data настановної папки SQL Server 2000 (Mssql). У процесі установки програма збирає всі дані про параметри конфігурації, що вводяться користувачем, і зберігає їх у файлі Setup.iss. Файл Setup.iss ви можете знайти в папці \ Install настановної папки SQL Server 2000.
Файл Setup.iss згодом може виявитися дуже корисним для повторної локальної установки, а також для виконання видаленою або автоматичної установки.
Крім того, в процесі установки ведеться журнал, в якому відображається інформація про кожну фазу установки. Журнал представляє собою звичайний файл з ім'ям Sqlstp.log, який зберігається в кореневій папці операційної системи, наприклад у папці \ WinNT. Інформація про помилки у процесі установки записується у файли Errorlog і зберігається в папці \ l_og настановної папки SQL Server 2000.
Після того, як всі файли сервера скопійовані і всі підготовчі операції виконані, програма установки приступає до налаштування параметрів роботи сервера.
Віддалена установка
Windows NT і Windows 2000 надають нам справді приголомшливі можливості, дозволяючи не тільки виробляти віддалене адміністрування комп'ютерів домену, але і встановлювати програмне забезпечення на комп'ютері, що знаходиться в сусідній кімнаті, не встаючи з-за робочого столу.
Віддалена установка запускається також програмою Setupsql.exe на тому комп'ютері, з якого виробляється віддалена установка. Однак крім даних, необхідних при локальній установці, від вас буде потрібно ввести ще й додаткову інформацію - це й зрозуміло, оскільки в цьому випадку використовується ще й мережа: Про Username (ім'я користувача) - ім'я користувача, обліковий запис якого
буде використана на віддаленому комп'ютері для виконання установки SQL Server 2000;
Про Password (пароль) - пароль користувача;
Про Domain (домен) - ім'я домену, до якого належить обліковий запис користувача;
Потрібно вказати користувача, який має адміністративні привілеї на віддаленому комп'ютері, на який передбачається встановити SQL Server 2000. У принципі, це самостійна обліковий запис, і її не слід плутати з тією обліковим записом, під якою ви увійшли в систему, і з тими обліковими записами, які будуть використані для роботи служб SQL Server. Втім, обидві цих облікових записи можуть бути з успіхом використані для запуску програми установки.
Про Target Computer (цільовий комп'ютер) - ім'я віддаленого комп'ютера, на який буде проводитися встановлення SQL Server 2000;
Про Target Path (UNC) (цільової шлях у форматі UNC) - повний опис шляху в форматі UNC до папки, в яку планується встановити SQL Server '.
Про Setup Source Files (настановні файли) - повний шлях у форматі UNC до установочних файлів SQL Server 2000 в мережі.
Після того як будуть введена інформація для зазначених вище параметрів, подальша робота майстра установки вельми нагадує локальну установку. Майстер збирає інформацію про всі параметри установки, таких як зіставлення, імена і паролі облікових записів для запуску служб SQL Server 2000, настановна папка для самого сервера і папка для зберігання баз даних, список встановлюваних компонентів і т. д. Після того як вся необхідна для установки SQL Server 2000 інформація введена, вона, як і при виконанні локальної установки, зберігається у файлі Setup.iss. Однак власне встановлення сервера при цьому майстер установки не виконує. Він лише запускає на віддаленому комп'ютері програму remsetup.exe, яка і буде виконувати установку SQL Server 2000. На цьому робота майстра установки Installation Wizard (програми setup.sql) закінчується.
Для віддаленої установки можна використовувати готовий файл Setup.iss, згенерований раніше при виконанні локальної установки. При необхідності в цей файл можна внести деякі зміни. Для цього можна використовувати звичайний текстовий редактор.
На віддаленому комп'ютері програма remsetup.exe копіює файли, необхідні для установки, в мережеву папку Admin $, в тому числі і файл Setup.iss, з якого зчитує дані про установку. Після цього починається власне установка SQL Server 2000.
Дистанційна установка дозволяє встановити SQL Server на велику кількість вилучених комп'ютерів з одного центрального комп'ютера. Для того щоб віддалена установка пройшла успішно, майстру установки необхідно мати такі права:
О на локальному комп'ютері - права на запуск майстра установки і збереження файлу Setup.iss;
О на віддаленому комп'ютері - права доступу з адміністративними повноваженнями.
Не обов'язково, щоб користувач, який запускає програму установки, мав права адміністратора на віддаленому комп'ютері. Майстер установки дозволяє явно вказати обліковий запис, яка буде використана на віддаленому комп'ютері для запуску програми Remsetup.exe. Крім того, підійде будь-яка обліковий запис, в тому числі обліковий запис користувача, що запускає програму Setupsqi.exe на локальному комп'ютері. Також може бути використана одна з облікових записів, сконфігурованих для запуску служб 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
У розподіленої гетерогенної мережі масштабу підприємства встановлення та підтримка програмних продуктів, а також управління ними стають для адміністраторів постійним головним болем. Адміністративні втрати, пов'язані з необхідністю стежити за станом десятків програм, синхронізувати версії програм, своєчасно оновлювати їх, збирати аналітичну інформацію про роботу мережі, інвентаризувати відомості про встановлене програмне забезпечення, зі зростанням розміру підприємства зростають у геометричній прогресії.
Microsoft System Management Server - сервер управління системою - є ключовою ланкою пакету Microsoft BackOffice, дозволяючи істотно полегшити життя системних адміністраторів. Однією з можливостей сервера SMS є його здатність виконувати типову установку програмного забезпечення на велике число комп'ютерів мережі з мінімальною участю користувача.
Ви можете використовувати Microsoft System Management Server версії 1.2 або вище для автоматичної установки Microsoft SQL Server 2000 на великій кількості комп'ютерів мережі підприємства.
Компакт-диск з SQL Server поставляється з файлом Smssql.pdf, який автоматично створює інсталяційний пакет SMS. Після цього сервер можна встановлювати за допомогою SMS на багатьох комп'ютерах. Файли. Pdf представляють собою звичайні текстові файли, в яких міститься інформація про дії, які повинні бути виконані Microsoft SMS. Файл Smssql.pdf містить команди для запуску bat-файлів, що поставляються на компакт-диску з дистрибутивом SQL Server 2000. Файл smscli.bat призначений для виконання автоматичної установки утиліт адміністрування SQL Server 2000 з використанням пакету SMS. Файл smssqins.bat призначений для виконання звичайного встановлення утиліт адміністрування SQL Server 2000 з використанням пакету SMS. При необхідності користувач може скопіювати файл smssql.pdf і внести до нього необхідні зміни.
Використання файлу автоматичної установки
Автоматична установка SQL Server може бути зроблена за допомогою спеціального файла-сценарію, що містить опис всіх параметрів, які користувач повинен вказати в процесі установки, позбавляючи його тим самим від особистої присутності при установці. Автоматична установка також використовується при віддаленій установці.
Створення файлу автоматотеской установки Setup.iss можливо одним з двох способів. По-перше, можна використовувати для цього будь-який текстовий редактор, наприклад Notepad. Другий альтернативою буде запуск програми Setupsql.exe з ключем k = Rc. Цей ключ вказує програмі установки спочатку зібрати всі відомості про конфігурації, а потім почати копіювання файлів. Коли збір відомостей закінчується, з'являється діалогове вікно, яке попереджає про початок копіювання файлів. Якщо клацнути на кнопці Cancel (скасування), то програма установки збереже всі введені дані в папці операційної системи у файлі Setup.iss. Необхідно лише додати секції [SdStartCopy-О] і [SdFinish-0] вкінець файлу
Файл Setup.iss також створюється і в разі звичайного встановлення. При створенні файлу автоматичної установки слід враховувати, що можливість його використання для встановлення SQL Server на безліч комп'ютерів залежить від конкретної ситуації. Наприклад, якщо при створенні файлу Setup.iss ви використовували локальну обліковий запис, а на віддаленому комп'ютері не існує користувача з таким же ім'ям і паролем, установка може не вдатися. Конфігурація дисків на комп'ютерах також повинна бути однаковою.
SQL Server 2000 постачається з п'ятьма виконуваними bat-файлами: Про sqlcli.bat - встановлює тільки засоби управління SQL Server 2000, використовує у своїй роботі файл автоматичної установки sqlcli.iss;
Про sqlins.bat - виконує типову установку, встановлюючи локальну обліковий запис системи для запуску служб, використовує файл sqlins.iss;
Про sqlcst.bat - виконує замовну встановлення усіх компонентів, встановлюючи локальну обліковий запис системи для запуску служб, запускає програму Setupsql.exe з файлом sqlcst.iss;
Про sqlupg.bat - виконує автоматичне оновлення до SQL Server 2000 на операційній системі Windows NT;
Про sqlrem.bat - видаляє SQL Server 2000.
Ви також можете скопіювати та відредагувати будь-який з цих файлів на свій розсуд. Наприклад, дозволити використання доменної облікового запису користувача у файлі sqlins.iss для виконання типової установки.
Якщо ви не впевнені, що готові пуститися в самостійне плавання, найкраще скористатися розробленої Microsoft стандартною установкою, що підходить більшості користувачів.
SQL Server 2000 під управлінням операційних систем Windows NT і Windows 2000 функціонує як служба операційної системи, або, точніше, як дві служби - MSSQLServer і SQLServerAgent. Система захисту Windows NT і Windows 2000 вимагає, щоб будь-який доступ до ресурсів був підтверджений наявністю відповідних прав. Хоча всі служби і є частиною однієї програми, все ж перед тим як почати роботу, вони зобов'язані пройти перевірку прав доступу подібно звичайним користувачам. Як відомо, права та дозволи призначаються на основі облікових записів. Таким чином, деякі служби SQL Server 2000, які звертаються до ресурсів мережі, зобов'язані мати власні облікові записи, причому різні служби можуть мати різні облікові записи.
Цей розділ має відношення тільки до операційних систем сімейства Windows NT і Windows 2000. В операційній системі Windows 98 не реалізована можливість виконання при-1 положень у вигляді служб операційної системи. При запуску SQL Server 2000 під керуванням цієї j операційної системи використовується обліковий запис поточного користувача. Як наслідок, SQL 'Server 2000 буде мати ті ж права доступу, що і користувач, що запустив цей додаток. '
Різниться три види облікових записів, під якими може стартувати SQL;
Server.
Про Local System (локальна система). Обліковий запис локальної системи створюється автоматично при установці операційної системи. Під цим обліковим записом служба SQL Server запускається з правами операційної системи. Всі дії з управління цим обліковим записом, в тому числі й зміни пароля, виконує сама операційна система. Навіть адміністратор не може керувати нею. Цей обліковий запис має права адміністратора і зазвичай за умовчанням їй надається доступ до всіх файлів. Проте якщо ви вирішили для запуску SQL Server 2000 використовувати локальну обліковий запис, переконайтесь в тому, що вона має повний доступ до всіх необхідних файлів і папок SQL Server 2000, і якщо буде потрібно, то надайте самі цього облікового запису доступу до тих чи інших ресурсів.
Про Local User (локальний користувач). Цей обліковий запис створюється на окремому комп'ютері. Відповідно, область дії таких облікових записів обмежується одним цим комп'ютером. При запуску SQL Server 2000 під обліковим записом локального користувача, який не входить до групи локальних адміністраторів, слід надати цього облікового запису повний доступ до всіх файлів і папок SQL Server 2000, а також дозволити їй реєструватися локально і стартувати в якості служби операційної системи.
Про User for Domain (користувач домену). Принциповою відмінністю облікових записів користувача домену є можливість роботи в мережі. Облікові записи цього типу зберігаються централізовано на контролері домену (domain controller) Windows NT або Windows 2000 і доступні з будь-якого комп'ютера, що входить до домену.
Облікові записи локальної системи і локального користувача не підтримують мережні операції. Отже, коли сервер SQL Server 2000 працює під локальної обліковим записом, то він матиме обмежені можливості. Зокрема, не можна буде виконувати наступні дії: Про виклик віддалених процедур (Remote Procedure Calls, RPC); Про реплікація; Про резервне копіювання даних на мережний диск;
Про використання різнорідних джерел даних, що вимагають мережевого з'єднання;
Про підтримка електронної пошти.
Таким чином, вибираючи тип облікового запису, враховуйте ті можливості, які вона надає.
У всіх випадках, що вимагають наявності мережі, необхідно використовувати обліковий запис користувача в домені. Крім того, якщо передбачається реплікація, то рекомендується використовувати на всіх серверах одну й ту ж обліковий запис користувача в домені для запуску служб SQL Server 2000. Це гарантує, що не виникне ніяких конфліктів дозволів на доступ до ресурсів. При конфігуруванні реплікації рекомендується використовувати одну й ту ж обліковий запис користувача для видавця і абонентів, щоб уникнути проблем з розмежуванням доступу.
Основним компонентом SQL Server 2000 є служба MSSQLServer. Всі інші компоненти (SQLServerAgent, Microsoft Search і MSDTC) встановлюють з'єднання з MSSQLServer. При цьому облікові записи, під якими стартують служби SQLServerAgent і MSDTC, повинні мати відповідні права на самому сервері. Для цього необхідно призначити відповідним облікових записів вбудовану роль сервера (fixed server role) Sysadmin.
Служба Microsoft Search може стартувати тільки під локальної обліковим записом системи. Для встановлення з'єднання зі службою MSSQLServer вона використовує ім'я та пароль учетнбй запису, під якою стартує служба MSSQLServer.
Як вже говорилося вище, кожна служба SQL Server 2000 може стартувати під власною обліковим записом. Але якщо немає особливих на те причин, то для того щоб уникнути проблем з правами доступу, рекомендується запускати всі служби під одним обліковим записом. Також можна надати облікових записів служб права адміністратора локальної операційної системи, включивши їх до групи Administrators. Це дасть можливість SQL Server 2000 перезапускати сервер і допоможе уникнути деяких проблем з автоматичним виконанням завдань (jobs). Однак такий підхід відкриває потенційну можливість злому системи з використанням SQL Server 2000. Якщо ви хочете максимально убезпечити систему, то краще витратити деякий час на конфігурування прав доступу, не надаючи облікового запису адміністративних прав.
Незалежно від того, під який обліковим записом передбачається запуск служб SQL Server 2000, необхідно переконатися в тому, що ця обліковий запис має такі права:
Про доступ і зміна файлів в папці \ 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. Це гарантує, що не виникне ніяких конфліктів дозволів на доступ до ресурсів. При конфігуруванні реплікації рекомендується використовувати одну й ту ж обліковий запис користувача для видавця і абонентів, щоб уникнути проблем з розмежуванням доступу.
Основним компонентом SQL Server 2000 є служба MSSQLServer. Всі інші компоненти (SQLServerAgent, Microsoft Search і MSDTC) встановлюють з'єднання з MSSQLServer. При цьому облікові записи, під якими стартують служби SQLServerAgent і MSDTC, повинні мати відповідні права на самому сервері. Для цього необхідно призначити відповідним облікових записів вбудовану роль сервера (fixed server role) Sysadmin.
Служба Microsoft Search може стартувати тільки під локальної обліковим записом системи. Для встановлення з'єднання зі службою MSSQLServer вона використовує ім'я та пароль учетнбй запису, під якою стартує служба MSSQLServer.
Як вже говорилося вище, кожна служба SQL Server 2000 може стартувати під власною обліковим записом. Але якщо немає особливих на те причин, то для того щоб уникнути проблем з правами доступу, рекомендується запускати всі служби під одним обліковим записом. Також можна надати облікових записів служб права адміністратора локальної операційної системи, включивши їх до групи Administrators. Це дасть можливість SQL Server 2000 перезапускати сервер і допоможе уникнути деяких проблем з автоматичним виконанням завдань Gobs). Однак такий підхід відкриває потенційну можливість злому системи з використанням SQL Server 2000. Якщо ви хочете максимально убезпечити систему, то краще витратити деякий час на конфігурування прав доступу, не надаючи облікового запису адміністративних прав.
Незалежно від того, під який обліковим записом передбачається запуск служб SQL Server 2000, необхідно переконатися в тому, що ця обліковий запис має такі права:
Про доступ і зміна файлів в папці \ 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. Для керування обліковими записами користувачів домену Windows 2000 використовується оснастка (у термінології Windows NT-утиліта) Active Directory Users and Computers. Коли ж виконується конфігурування облікових записів локальних користувачів, то використовується оснастка Computer Management (рис. 7.4). У цьому розділі буде розглянуто створення облікових записів для локальних користувачів Windows 2000. Створення користувачів домену відрізняється лише тим, що потрібна інша утиліта і введення кілька більшої кількості інформації про користувача. Однак ми не будемо розглядати конфігурування додаткових відомостей про користувача, таких як адресу його електронної пошти, профіль, можливість використання RAS і т. д.
При роботі з оснащенням Computer Management інформація про локальні користувачів зберігається в папці System Tools \ Local Users and Groups \ Users. При виборі в лівій частині вікна цієї папки в правій частині буде відображений список всіх користувачів, створених на обраному для адміністрування комп'ютері. Для створення нового користувача необхідно в контекстному меню папки Users вибрати пункт New User (новий користувач). У відповідь відкриється однойменне діалогове вікно (рис. 7.5), за допомогою якого необхідно вказати основні відомості про створюваної облікового запису.
Якщо комп'ютер, на який передбачається встановити SQL Server 2000, є контролером домену Windows 2000, то використання локальних облікових записів користувачів на цьому комп'ютері неможливо, тому відповідні пункти оснащення Computer Management будуть недоступні.
Розглянемо призначення елементів управління, наявних у вікні New User
(Новий користувач).
Про User name (ім'я користувача). Ім'я облікового запису, яке буде використовуватися при реєстрації користувача в домені. Це ім'я може бути довільним і не завжди відображати ім'я самого користувача.
Про Full name (повне ім'я). У цьому полі вказується повне ім'я власника облікового запису.
Про Description (опис). Це поле призначене для невеликого коментарю, який допомагає ідентифікувати обліковий запис або її власника. Допускається короткий запис будь-яких інших відомостей.
Про Password (пароль). У цьому полі вказується пароль, під яким користувачеві буде вирішуватися вхід в домен.
Про Conform Password (підтвердження пароля). У цьому полі необхідно повторити той же пароль, що і в попередньому полі. Це робиться, щоб гарантувати введення правильного пароля і уникнути помилок.
Про User must change password at next logon (користувач повинен змінити пароль при наступному вході в систему). Встановивши цей прапорець, адміністратор тим самим зажадає від користувача зміни пароля при наступному вході в домен.
Про User cannot change password (користувач не повинен міняти пароль). Якщо адміністратор встановить для користувача цей прапорець, то користувач не зможе самостійно змінити пароль і буде змушений звернутися до адміністратора. Така ситуація необхідна, якщо крім цього користувача під тим же самим паролем працює ще хто-небудь. У цьому випадку адміністратор зможе сповістити другого користувача про те, що пароль був змінений.
Про Password never expires (термін дії пароля не закінчується). Установка цього прапорця дозволяє уникнути частої зміни пароля користувачем.
Про Account disabled (блокування облікового запису). При установці цього прапорця обліковий запис блокується і не допускає реєстрації в домені ні господаря облікового запису, ні кого-небудь ще. Ця можливість часто використовується, якщо передбачається тривала відсутність користувача на робочому місці. Такий підхід допоможе уникнути несанкціонованого доступу до ресурсів. Щоб використовувати облікові записи користувачів Windows 2000 для запуску служб Server 2000, як і при конфігуруванні облікових записів Windows NT 4.0, їм необхідно надати додаткові права. У Windows 2000 управління правами здійснюється окремо від управління обліковими записами. Для управління правами в межах локального комп'ютера використовується оснастка Local Security Policy (рис. 7.6).
Для надання облікової запису необхідних прав виконайте такі дії.
1. В оснащенні Local Security Policy виберіть папку Local Policies.
2. У папці Local Policies виберіть вкладену папку User Right Assignment. У правій частині вікна буде виведений список прав, які можуть бути присвоєні користувачам.
3. Для присвоєння користувачеві того чи іншого права двічі клацніть на назві права і в діалоговому вікні Local Security Policy Settings (параметри локальної політики безпеки) клацніть на кнопку Add (додати), після чого виберіть ім'я потрібного користувача.
Як і при роботі з Windows NT, для того щоб облікова запис Windows 2000 могла використовуватися для запуску служб SQL Server 2000, їй необхідно надати такі права:
Про Act as a part of the operating system (діяти як частина операційної системи); Про Log on as a service (реєструватися в якості служби операційної системи);
Про Increase quotas (право змінювати квоти процесів);
Про Replace a process level token (право замінювати рівень маркера процесу).
Після того як всі зазначені права будуть надані облікового запису (або всіх облікових записів), яку передбачається використовувати для запуску служб SQL Server 2000, підготовку облікових записів можна вважати закінченою.
При установці SQL Server 2000 в редакціях Enterprise, Standard, Personal edition майстер установки запропонує вам вибрати один з трьох типів установки. Про Звичайний тип установки (Typical). Встановлюються задані за замовчуванням компоненти. Такий тип установки рекомендується для більшості користувачів.
Про Мінімальний тип установки (Minimum). Встановлюється мінімальна конфігурація, необхідна для роботи SQL Server. Цей тип рекомендується для користувачів, що мають комп'ютер з невеликим доступним дисковим простором.
Про Вибірковий тип установки (Custom). Цей тип установки дозволяє вибрати необхідні саме для вас компоненти. Виробляти вибіркову установку рекомендується досвідченим користувачам.
Якщо ви запускаєте програму установки SQL Server для редакцій, які не підтримуються вашою операційною системою, наприклад, якщо встановлюється SQL Server Standard Edition під Microsoft Windows 98, програма не буде пропонувати вам вибрати тип установки. Натомість відразу пропонується обрати інструменти адміністрування в діалоговому вікні Select Components (вибір компонентів).
Як вже було сказано раніше в цьому розділі, для забезпечення мережної взаємодії серверів SQL Server і їх клієнтів потрібні так звані мережеві бібліотеки (network library), що використовують певні мережні протоколи для передачі даних. Ці бібліотеки реалізовані у вигляді dll-файлів (Dynamic-link library, DLL), що підключаються до операційної системи. Сама по собі мережева бібліотека не забезпечує можливості комунікації, для цього необхідно встановити відповідний мережевий протокол. Бібліотека являє собою програмний інтерфейс, який реалізує роботу з SQL Server 2000. Мережеві бібліотеки встановлюються як на сервері, так і на клієнті.
SQL Server 2000, як: і SQL Server 7.0, може використовувати більшість мережевих протоколів операційної системи. Операційні системи сімейства Windows мають вбудовану підтримку мережі, тобто до складу цих операційних систем входить набір стандартних протоколів і служб, за допомогою яких можна виконувати базові мережеві операції роботи з файлами і принтерами. Управління мережевими протоколами можуть розрізнятися при роботі з різними операційними системами. Конфігурування же мережевих бібліотек практично не залежить від використовуваної операційної системи, так як ця операція здійснюється на рівні SQL Server 2000.
В операційній системі Windows 2000 установка і конфігурування мережевих протоколів дещо інша в порівнянні з Windows NT 4.0. Для управління налаштуваннями локальної мережі використовується вікно Local Area Connection Properties (властивості локального з'єднання).
1. У головному меню операційної системи виберіть пункт Start> Settings * Network and Dial-Up Connections (пуск> настройка> мережеві з'єднання).
2. У вікні (рис. 7.11) двічі клацніть на значку Local Area Connection (локальне з'єднання), після чого відкриється вікно Local Area Connection Status (стан локального з'єднання), показане на рис. 7.12.
Тепер залишається тільки клацнути на кнопці Properties (властивості), що і призведе до відкриття вікна Local Area Connection Properties (властивості локального з'єднання).
У вікні Local Area Connection Properties (властивості локального з'єднання) відображається назва мережевої карти і нижче наведений список мережевих протоколів і служб, встановлених для зазначеної мережевої карти. Щоб додати або видалити
протоколу використовуйте кнопки Install (встановити) або Uninstall (видалити). Щоб додати нового протоколу необхідно виконати наступні кроки.
1. Клацніть на кнопці Install (встановити). Після цього відкриється діалогове вікно Select Network Component Type (вибір типу мережевого компонента), яке призначене для вибору тина встановлюваного мережевого компонента
2. Для установки нового протоколу виділіть пункт Protocol (протокол) і клацніть на кнопці Add (додати). У результаті відкриється діалогове вікно Select Network Protocol (вибір мережевого протоколу), за допомогою якого, власне, і вибирається встановлюваний протокол (рис. 7.14). р мережевого протоколу) міститься перелік протоколів, що поставляються разом з операційною системою Windows 2000 і ще не встановлені у системі. Якщо передбачається встановити протокол стороннього виробника, то необхідно явно вказати папку, в якій містяться відповідні файли. Для цього потрібно скористатися кнопкою Have Disk (встановити з диска).
Після того як потрібний протокол обраний, залишається тільки клацнути на кнопці ОК. Для деяких протоколів (наприклад, NetBEUI) на цьому їх установка закінчується. Однак при роботі зі складними протоколами (наприклад, TCP / IP) може знадобитися конфігурування властивостей встановлюваного протоколу.
Бібліотека розширює базові можливості протоколу, динамічно ггодкл чаясь до операційної системи, і є як би надбудовою над ним, виконує різні мережні операції з обміну даними між клієнтом і сервером, для чого використовуються механізми IPC.
Одночасно SQL Server 2000 може працювати з декількома мережевими бібліотеками. У табл. 7.7 наведено список і призначення мережевих бібліотек, що поставляються в складі 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 необхідно вибрати потрібні бібліотеки. Якщо якась потрібна бібліотека не була встановлена, то її можна встановити пізніше, скориставшись утилітою мережевого конфігурування сервера SQL Server Network Utility (рис. 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 (загальні) є два списки - Disabled protocols (доступні протоколи) і Enabled protocols (встановлені протоколи). У першому списку перераховані бібліотеки, доступні для установки, але не використовуються в роботі сервера. Другий же список містить перелік бібліотек, які використовуються в поточній роботі SQL Server 2000. Для зміни параметрів будь-який з них необхідно виділити ім'я бібліотеки і клацнути на кнопці Properties (властивості), після чого відкриється діалогове вікно властивостей обраної мережевої бібліотеки. На рис. 7.16 наведено вікно властивостей бібліотеки Multiprotocol.
Більша частина бібліотек дозволяє настроїти параметри підключення клієнтів до сервера. Параметри, встановлені за замовчуванням для будь-якої з бібліотек, можна змінити. Однак, хоча мережеві бібліотеки і дозволяють змінювати параметри конфігурації, це може викликати певні проблеми. Зокрема, клієнти повинні знати, які параметри встановлені на сервері. В іншому випадку вони не зможуть встановити з'єднання. Значення за замовчуванням є стандартними і відомі всім клієнтам.
Як вже було сказано, щоб клієнт мав можливість підключатися до SQL Server 2000, на ньому повинен бути встановлений принаймні один мережевий протокол і мережева бібліотека, відповідна мережевий бібліотеці сервера, В іншому випадку клієнт не зможе встановити з'єднання з SQL Server 2000. У складі всіх операційних систем сімейства Windows є набір загальних мережевих протоколів. Проте мережеві бібліотеки повинні бути встановлені окремо. Для їх цього можна скористатися майстром встановлення SQL Server 2000, вибравши режим установки Client Connective Only (тільки для з'єднання клієнта). У цьому випадку на комп'ютер буде встановлено тільки компоненти, необхідні для з'єднання клієнтів з SQL Server 2000.
Якщо на клієнті використовується декілька бібліотек, то з'єднання з сервером може бути встановлено за допомогою будь-якої з них. Однак після того, як з'єднання встановлено, робота з сервером ведеться за допомогою лише однієї бібліотеки, вибір якої відбувається наступним чином: клієнт по черзі перебирає бібліотеки, перераховані в списку Enabled Protocols (встановлені протоколи) вкладки General (загальні) утиліти SQL Server Network Utility, починаючи з самої верхньої. Якщо на сервері є аналогічна бібліотека та параметри конфігурації сервера і клієнта збігаються, то перебір на цьому зупиняється і для з'єднання вибирається ця бібліотека. Виходить, що бібліотека, що знаходиться вгорі списку, має більше шансів для встановлення з'єднання. Тому якщо бажано, щоб клієнт використовував конкретну бібліотеку, її слід помістити у верхній частині списку.
До компонентів, необхідним для з'єднання клієнтів з SQL Server 2000, відносяться мережеві бібліотеки і утиліта Client Network Utility (рис. 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 має чотири вкладки. Перша з них має ім'я General (загальні) і призначена для управління набором бібліотек, що використовуються для встановлення з'єднання з сервером. Призначення списків Disabled protocols (доступні протоколи) і Enabled protocols (встановлені протоколи) цієї вкладки точно таке ж, як і для вкладки General (загальні) утиліти Server Network Libraries. У нижній частині вкладки є два прапорці.
Про Enable protocol encryption (включити шифрування протоколу) - установка пов го прапорця забезпечує шифрування даних, переданих по мережі. Однак шифрування буде використовуватися тільки в тому випадку, якщо воно дозволене як на клієнті, так і на сервері. Установка прапорця Enable protocol encryption (включити шифрування протоколу) тільки на клієнті без дозволу шифрування з боку сервера не забезпечує шифрування даних.
Про Enable shared memory protocol (включити протокол поділу пам'яті) - установка цього прапорця дозволяє колективне використання пам'яті. Подібний підхід використовується, коли сервер і клієнт знаходяться на одному комп'ютері. Обмін даними через оперативну пам'ять, а не мережеві протоколи, дозволяє підвищити швидкість обміну.
Можлива ситуація, коли клієнт буде взаємодіяти з декількома серверами, що використовують одну і ту ж мережеву бібліотеку, але з різними параметрами. Так як для кожної бібліотеки можна вказати тільки один варіант параметрів, то на клієнті потрібно буде кожен раз змінювати параметри конфігурації у відповідності з налаштуваннями сервера. У цьому випадку зручніше використовувати так звані псевдоніми серверів (server alias). Псевдонім має виразно ім'я і являє собою набір параметрів, що описують спосіб підключення клієнта до сервера. Ім'я псевдоніма сервера і власне ім'я сервера не обов'язково повинні збігатися. Більше того, кожен сервер може мати більше одного псевдоніма, кожен з яких може містити різні варіанти конфігурації мережевих бібліотек. Конфігурування псевдонімів здійснюється за допомогою вкладки Alias (псевдоніми), показаної на рис. 7.19.
Конфігурування нового псевдоніму здійснюється за допомогою вікна Add Network Library Configuration (додавання конфігурації мережевої бібліотеки). Це вікно, показане на рис. 7.20, можна відкрити за допомогою кнопки Add (додати). У цьому вікні в полі Server alias (псевдонім сервера) необхідно вказати ім'я псевдоніма, через яке буде встановлюватися з'єднання з сервером. Клієнт повинен буде вводити не ім'я самого сервера, а відповідний псевдонім. Для кожного псевдоніма допускається використання лише однієї мережевої бібліотеки, вибір якої здійснюється за допомогою групи перемикачів Network libraries (мережеві бібліотеки). В області Connection parameters (параметри з'єднання) настроюються параметри вибраної бібліотеки. Конкретний набір параметрів залежить від того, яка бібліотека обрана. Після завдання всіх необхідних параметрів залишається тільки клацнути на кнопці ОК, після чого псевдонім буде додано до списку вкладки Alias (псевдоніми).
Клієнт може звертатися до сервера, використовуючи технології ODBC, OLE DB, SQL-DMO (SQL Distributed Management Objects) і DB-Library, що працюють поверх мережевих бібліотек. Третя вкладка утиліти Client Network Utility називається DB-Library Options (параметри DB-Library) і містить інформацію про встановлену на клієнті версії DB-Library (рис. 7.21).
У групі DB-Library information (інформація DB-Library) вказуються основні відомості про бібліотеку. Зокрема, виводиться ім'я і шлях до відповідного dll-файлу, а також номер версії, дата створення і розмір файлу. У нижній частині вікна є два прапорці, які використовуються для управління параметрами встановлюваного за допомогою DB-Library з'єднання.
"Про Automatic ANSI to OEM conversion (автоматичне перетворення з OEM в ANSI) - установка цього прапорця забезпечує при передачі даних від клі-
''Ента до сервера автоматичне перетворення текстових даних з форма-та OEM у формат ANSI, і навпаки - перетворення з ANSI в OEM при передачі від сервера до клієнта.
Про Use international settings (використовувати національні установки) - при новке цього прапорця бібліотека DB-Library буде використовувати національні установки (формат дати, часу, валюти і т. д.) локальної системи. Якщо ж цей прапорець знятий, будуть використовуватися значення за замовчуванням, сконфігуровані в самій бібліотеці.
Прапорець Automatic ANSI to OEM conversion (автоматичне перетворення з OEM в ANSI) встановлений за замовчуванням на всіх клієнтах, тоді як прапорець Use international settings (використовувати національні установки) встановлено за умовчанням тільки на клієнтах, що працюють під управлінням 32-розрядних операційних систем.
За умовчанням як клієнти Windows NT 4.0, Windows 2000, так і клієнти Windows 98 використовують для підключення до сервера іменовані канали. Нагадаємо, що Windows 98 не підтримує серверну частину іменованих каналів.
Безпосередньо перед установкою SQL Server необхідно закрити всі програми і зупинити всі служби, що використовують ODBC, такі, наприклад, як Internet Information Service.
Перш ніж ви зможете зареєструватися в SQL Server і приступити до виконання будь-яких дій, сервер необхідно запустити. Точніше кажучи, запустити службу MSSQLServer. Для цього потрібно знати, яким чином можна це зробити. Тільки після того як буде здійснено запуск SQL Server і перевірені ваші права доступу, ви зможете виконувати будь-які дії відповідно до вашими правами, наприклад адміністрування сервера або виконання запитів.
Нагадаємо, що запуск служби SQLServerAgent необхідний тільки в тому випадку, якщо потрібно автоматизувати адміністрування та управління SQL Server 2000.
У цій главі будуть докладно розглянуті різні варіанти запуску служб SQL Server 2000, а також їх зупинка і припинення.
Ми вже не раз говорили, що основною службою SQL Server 2000 є служба MSSQLServer. Всі основні операції з об'єктами баз даних (виконання запитів, збережених процедур і т. д.) реалізуються саме завдяки цій службі. Інші служби SQL Server 2000 є другорядними, і їх робота будується на фундаменті, яке забезпечується службою MSSQLServer. У принципі, служби MSSearch і MS DTC можуть працювати і незалежно від SQL Server 2000, так як вони використовуються в роботі й інших продуктів. Тим не менш служба SQLServerAgent не може працювати без служби MSSQLServer. Ось чому цю службу необхідно запускати після запуску служби MSSQLServer.
Нагадаємо функції додаткових служб SQL Server 2000: Про служба SQLServerAgent відповідає за автоматичне виконання завдань і
повідомлення операторів про помилки в роботі сервера;
Про служба MSSearch дозволяє реалізувати пошук символьної інформації в полях таблиць баз даних;
Про служба MS DTC дозволяє організувати доступ до розподілених джерел інформації, розташованої як на локальному, так і на віддалених серверах. Додаткові служби запускаються окремо і встановлюють з'єднання
з сервером, подібно до звичайних клієнтам. Кожна така служба самостійно
підключається до MSSQLServer, використовуючи певні облікові записи з відповідними правами доступу. Отже, щоб почати роботу з SQL Server 2000, досить запустити службу MSSQLServer. Після цього користувачі можуть встановлювати з'єднання з сервером і виконувати будь-які дії.
Управління SQL Server в якості служби можливо засобами операційної системи як локально, так і віддалено. У вашій організації може бути встановлено декілька серверів баз даних, і ви можете запускати або зупиняти їх, працюючи на будь-якому комп'ютері, підключеному до мережі (можливо, навіть без встановлених SQL Server і засобів адміністрування).
Майже все вищесказане відноситься до комп'ютерів, що працюють під управлінням операційних систем сімейства Windows NT. Оскільки операційна система Windows 95/98 не має служб, ви можете запускати, зупиняти і припиняти SQL Server тільки локально, тобто тільки на тому комп'ютері, де запущений сервер SQL Server.
Якщо на комп'ютері з SQL Server не встановлена мережна підтримка, ви все ж зможете виконувати запуск, зупинку і призупинення SQL Server. Дії при цьому нічим не відрізняються від операцій з мережею. При установці з'єднання з локальним сервером, який не підтримує мережу, використовуються іменований ні канали. Іменовані канали безпосередньо звертаються до SQL Server, минаючи мережеві компоненти. Як у випадку роботи з мережею, так і без неї, за умовчанням встановлюється з'єднання за допомогою іменованих каналів. Йрі цьому використовується стандартний канал \ \. \ Pipe \ sql \ query, якщо явно не вказано будь-хто інший.
У разі якщо при підключенні не вказується ім'я сервера, проводиться пряме підключення до локального сервера з використанням локальних іменованих каналів. Якщо ж вказується ім'я віддаленого сервера, то використовуються мережеві іменовані канали або інший механізм, наприклад IPX / SPX.
Одним із способів запуску служб SQL Server 2000 є їх запуск операційною системою. Такий спосіб запуску називається автоматичним, так як участі користувача в цьому випадку не потрібно. Запуск служби відбувається в момент завантаження операційної системи. Якщо після цього служба була зупинена, то користувач повинен буде запускати її вручну.
На одному з етапів установки користувач може дозволити автоматичний запуск служб SQL Server 2000. Якщо цього не було зроблено, згодом автоматичний запуск можна дозволити одним з таких методів. Про SQL Server Enterprise Manager. Щоб встановити автоматичний старт служб SQL Server 2000 засобами Enterprise Manager, необхідно вибрати сервер і відкрити вікно його властивостей, вибравши в контекстному меню пункт Properties (властивості). У відповідь відкриється SQL Server Properties вікно (властивості SQL Server), показане на рис. 10.1. У нижній частині вкладки General (загальні) є на-
бор прапорців, за допомогою яких можна дозволити автоматичний запуск для служб MSSQLServer, SQLServerAgent і MSDTC.
Про Засоби утиліти Services. Третій спосіб змусити SQL Server запускатися автоматично зводиться до використання вбудованих в операційну систему засобів управління службами. Таким засобом є утиліта Services (служби) у вікні Control Panel (панель управління) операційної системи. У вікні утиліти відображається список всіх служб, наявних в операційній системі. Для кожної служби відображається її поточний стан та параметри запуску (рис. 10.2). Запуск служби ідентифікується міткою Started (запущена) в поле Status (стан). У полі Startup Type (тип запуску) можливі три варіанти мітки: Automatic (автоматичний), Manual (ручний) і Disabled (відключена), які відповідно означають автоматичний запуск, ручний запуск і відключення служби. Для автоматичного запуску служб SQL Server 2000 двічі клацніть на імені потрібної служби. У відповідь відкриється вікно властивостей служби (мал. 10.3). Вибір методу запуску служби конфігурується за допомогою списку, Startup Type (тип запуску), в якому необхідно вибрати пункт Automatic (автоматичний).
Про Засоби утиліти SQL Server Service Manager. Утиліта SQL Server Service Manager
дозволяє запускати, зупиняти і припиняти служби SQL Server 2000
(Рис. 10.4). Крім того, з її допомогою можна встановити режим автоматичного
запуску для служб MSSQLServer, SQLServerAgent і MSDTC. Для цього необ
обхідно запустити Service Manager, вибрати потрібний сервер, вказати службу і уста-;
новить прапорець Auto-start service when OS starts (автоматично старт при запуску
операційної системи). Повторіть. Цю операцію на всіх серверах мережі для кож
дой служби, яку необхідно запускати в автоматичному режимі.
Якщо у вас виникне необхідність відключити автоматичний запуск 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. Для цього клацніть правою кнопкою миші на імені потрібного сервера. У контекстному меню можна вибрати команди, дозволені для сервера в даний момент (рис. 10.5). Таким способом можна запускати (команда Start), зупиняти (команда Stop) і припиняти (команда Pause) як локальні, так і віддалені сервери. Зауважимо, однак, що цей метод дозволяє запускати тільки службу MSSQLServer. Значок служби SQLServerAgent розташований в папці Management сервера. Викликавши його контекстне меню, ви можете керувати роботою цієї служби. Додаткові служби, такі як MSDTC і SQLMail, розташовуються в папці Support Services. Управління їх роботою здійснюється аналогічно.
Про Найбільш простий спосіб ручного запуску полягає у використанні адміністративної утиліти SQL Server Service Manager (див. рис. 10.4), спеціально призначеної для запуску, зупинки та припинення служб SQL Server. У вікні утиліти вам пропонується вибрати сервер і службу, з якими ви будете працювати. Значки відображають дії, доступні в даний момент для обраної служби.
Про Наступний спосіб запуску SQL Server передбачає використання утиліти командного рядка net start. Як параметр необхідно вказати ім'я служби, яку необхідно запустити, наприклад: net start mssqlserver net start sqlserver-agent
Для запуску служб іменованої копії необхідно додати її ім'я і знак долара перед ним. Наприклад, для запуску служби MSSQLServer копії TRELON використовується наступна команда: net start MSSQLSTRELON
Для запуску служби SQLAgent потрібно наступна команда: net start SQLAgentSTRELON
Виконання команди net start без імені служби призведе до висновку списку запущених в операційній системі служб.
Про Для запуску SQL Server можна також використовувати команду sqlservr. У цьому випадку SQL Server 2000 запускається не як служба, а як окреме додатку ження. Це означає, що всі засоби адміністрування (Service Manager, Enterprise Manager, Services в панелі управління) будуть показувати, що сервер зупинений. Використання команди net stop mssql server для зупинки SQL Server в цьому випадку видасть повідомлення про помилку, так як система вважає, що сервер не запущений. Всі системні повідомлення будуть з'являтися у вікні, в якому виконана команда sqlservr. Сервер буде запускатися під обліковим записом користувача, що працює в системі в даний момент, і якщо цей користувач вирішить завершити сеанс роботи в операційній системі, йому доведеться спочатку завершити роботу SQL Server.
За деяких обставин буває необхідно запустити SQL Server в режимі одного - наприклад, щоб виконати конфігурування важливих характеристик сервера або відновити пошкоджену системну базу даних.
У режимі одного служба MSSQLServer підтримує тільки одне з'єднання. Так як додаткові служби SQL Server 2000, подібно звичайним користувачам, встановлюють клієнтські з'єднання, то необхідно переконатися, що ці служби, наприклад SQLServerAgent або SQLMail, не запущені. В іншому випадку ви самі не зможете отримати доступ до сервера,
оскільки єдине можливе з'єднання буде вже задіяно. Переконайтеся, що клієнтські програми, які звертаються до SQL Server (такі як Internet Information Server), також зупинені.
При режимі одного «брудні» сторінки (dirty pages) негайно записуються на диск. Це означає, що дані, які були змінені після зчитування, відразу опиняться на диску, а не в кеш-пам'яті, як це буває при звичайній роботі.
Іншою особливістю роботи в режимі одного є те, що дозволено прямий доступ до системних таблиць, за замовчуванням заборонений в звичайному режимі. Прямий доступ до системних таблиць дозволяє модифікувати системні дані (структуру таблиць, користувачів, налаштування реплікації і т.д.) безпосередньо командами INSERT, DELETE і UPDATE. У звичайних умовах подібна модифікація виробляється з використанням збережених процедур і адміністративних утиліт.
Прямий доступ до системної інформації вимагає дуже високої кваліфікації та спеціальних знань. Більшості користувачів і системних адміністраторів буде достатньо коштів, наданих інтерфейсом SQL Server.
Для запуску SQL Server 2000 в режимі одного введіть наступну команду.
sqlservr.exe-т
У деяких випадках, наприклад після застосування неправильних параметрів конфігурації, SQL Server при наступному запуску не зможе стартувати, в результаті чого ви не зможете скасувати зроблені зміни. У цьому випадку необхідно запустити SQL Server з мінімальними вимогами. Це свого роду аварійний запуск SQL Server. У такому режимі кількість відкритих баз даних, таблиць, відкритих об'єктів, розмір кеша процедур і т. д. мінімально. Забороняється виконання процедур, що зберігаються, автоматично запускаються при кожному старті SQL Server. Автоматично встановлюється однокористувацький режим і прямий доступ до системних таблиць. Віддалений доступ забороняється, тобто надається можливість працювати з сервером тільки локально.
Для запуску SQL Server 2000 як служби з мінімальними вимогами введіть наступну команду: sqlservr.exe-f
Якщо необхідно негайно запустити SQL Server 2000 з мінімальними вимогами як додаток, виконайте наступну команду: sqlservr.exe-f-с
Перед запуском SQL Server з мінімальними вимогами переконайтеся, що сервер зупинений і ніякі додаткові служби або програми, які можуть блокувати єдине з'єднання, не запущені.
Після установки SQL Server програма установки заносить до реєстру набір базових параметрів запуску для SQL Server. Якщо ви не хочете використовувати параметри за замовчуванням, то для запуску SQL Server в нестандартної конфігурації можете скористатися ключами, перерахованими у табл.
Таблиця. Додаткові ключі sqlservr.exe
Ключ
Опис
-D <master_file_path>
-Е <error_log_path>
-I <masterjog_path>
\ Program files \ Microsoft SQL Server \ MSSQL \ Data \ Master.mdf Якщо цей ключ не вказано, використовуються значення з реєстру
Дозволяє використовувати додатковий журнал помилок. Вкажіть повний шлях до файлу журналу, звичайно це \ Program files \ Microsoft SQL Server \ MSSQL \ Log \ Errorlog
Використовуйте цей ключ для підключення зазначеного журналу транзакцій для системної бази даних master. Вкажіть повний шлях до файлу журналу, звичайно це \ Program files \ Microsoft SQL Server \ MS5QL \ Data \ Mastlog. Idf
Ключ реєстру, створюваний програмою установки і містить параметри запуску SQL Server 2000 за умовчанням, знаходиться в реєстрі.
Ви можете редагувати значення в реєстрі для підключення іншої бази даних master. Автор використав цю можливість, коли працював з двома операційними системами на одному комп'ютері і потрібно було працювати з даними з обох систем. Для цього довелося тільки змінити посилання на базу даних master, її журнал транзакцій і журнал помилок.
Ви можете створити свою власну конфігурацію, зберігши всі необхідні параметри запуску сервера в реєстрі. Створіть копію стандартних ключів (SQLArgO, SQLArgl або SQLArg2), змінивши ім'я, наприклад, на SingleUser. Потім відредагуйте рядок даних для вказівки потрібних параметрів.
Щоб запустити SQL Server з новим ключем реєстру, введіть наступну команду: Sqlservr.exe-sSingleUser
Тут SingleUser - ім'я конфігурації.
Перед зупинкою сервера SQL Server ви можете призупинити його роботу і відправити повідомлення по мережі, яке попереджає користувачів про майбутню зупинці сервера, щоб вони могли коректно закінчити роботу і зберегти свої дані. Призупинення сервера дозволяє підключеним користувачам завершити роботу, при цьому нові користувачі не зможуть встановити з'єднання. Після того як всі дані успішно збережені і з'єднання розірвані, ви зможете спокійно провести зупинку сервера, не побоюючись, що отримаєте догану від начальника, який не встиг зберегти результат денної роботи.
Якщо ви виконуєте зупинку сервера без його попередньої припинення, то всі активні з'єднання негайно закриваються незалежно від того, зберегли користувачі свої дані чи ні. У такому випадку ви дуже скоро дізнаєтеся, що думають ваші колеги з приводу подібних дій і вашої компетентності.
При бажанні ви можете після припинення відновити роботу сервера в нормальному режимі.
Щоб призупинити роботу SQL Server, необхідно скористатися тими ж засобами, що і для запуску, але замість команди Start (пуск) вибирати команду Pause (пауза). Якщо необхідно зупинити сервер з командного рядка, то потрібно ввести наступну команду:
net pause mssqlserver
Для продовження роботи призупиненого SQL Server введіть команду
net continue mssql server
Відповідно для іменованих копій ці команди будуть виглядати наступним чином:
net pause mssqlSinstancename net continue mssql $ instancename
Ви не можете призупинити роботу сервера, якщо він запущений командою sqlservr.exe, так як в цьому випадку сервер працює як самостійний додаток, а не як служба операційної системи.
Ви можете зупинити сервер SQL Server 2000, якщо він запущений як служба, як локально (на тому ж сервері, на якому він запущений), так і віддалено (з клієнтського комп'ютера або іншого сервера SQL Server), використовуючи один з наступних методів.
Про SQL Server Enterprise Manager зупиняє локальний або віддалений сервер SQL Server або службу SQLServerAgent.
Про SQL Server Service Manager зупиняє локальний або віддалений сервер SQL Server або службу SQLServerAgent з одного вікна (у одному вікні можна керувати роботою всіх служб).
Про Команда SHUTDOWN мови Transact-SQL застосовується для зупинки SQL Server з клієнтського застосування при виконанні запитів, наприклад з утиліти osql або Query Analyzer. Використовуйте команду SHUTDOWN з параметром WITH NOWAIT для негайної зупинки сервера.
Про Команда net stop mssql server (net stop mssql Sinstancename - для іменованих копій) зупиняє локальний або віддалений SQL Server, якщо ви працюєте в Windows NT.
Про Утиліта Services (служби) вікна Control Panel (панель управління) зупиняє локальний сервер SQL Server.
Про Комбінація клавіш CTRL + C зупиняє сервер SQL Server, якщо він запущений з командного рядка командою sqlservr.exe.
При завершенні роботи всі дані з кеша зберігаються на диск, крім випадку, коли зупинка сервера проводиться за допомогою комбінації клавіш CTRL + C. У цьому випадку збереження даних не відбувається, в результаті час наступного запуску сервера збільшується, тому що необхідно виконати фіксацію закінчених і відкат незавершених транзакцій.
SQL Server 2000 очікує завершення всіх активних команд Transact-SQL і збережених процедур, і тільки після їх завершення відбувається зупинка сервера. Однак якщо ви зупиняєте сервер командою SHUTDOWN WITH NOWAIT, зупинка відбувається негайно незалежно від того, чи всі активні операції завершені.
Перед зупинкою SQL Server 2000 завжди здійснюйте припинення відповідних служб та розсилку попереджуючого повідомлення. Це дозволить користувачам коректно завершити свою роботу і в той же час запобіжить нові з'єднання.
На будь-якому функціонуючому підприємстві є певна група людей, які забезпечують прийняття рішень і контроль їх виконання. Кожна людина повинна мати чітко окреслене коло обов'язків відповідно до своєї кваліфікації та займаної посади. Наприклад, виконання щоденного резервного копіювання у великій організації найкраще доручити не системного адміністратора, а спеціально підготовленому персоналу. Чітке розмежування сфер діяльності допомагає більш ефективно контролювати роботу персоналу, відслідковувати зроблені операції та здійснювати перспективне планування.
Аналогічні вимоги існують і щодо розмежування досту пу до інформації всередині підприємства. Деяка інформація може бути доступна всьому персоналу, можливо, навіть і вашим клієнтам. Інша частина інформації не повинна виходити за рамки відділу. Наприклад, доступ до всієї інформації з заробітної плати співробітників повинен мати тільки працівник бухгалтерії, який займається її нарахуванням. Усі інші співробітники підприємства в цьому випадку мають інформацією лише про розмір своєї заробітної плати. Третя категорія інформації є строго конфіденційною і повинна бути доступна тільки певним людям. Прикладом може служити відомості про власні оригінальних розробках і технологіях, які компанія прагне вберегти від конкурентів. Вихід такої інформації за межі компанії може принести великі збитки.
Крім крадіжки інформації є можливість її пошкодження внаслідок помилки оператора або неправильно написаного додатки. Наслідки таких дій можуть спричинити за собою серйозні фінансові втрати. Наприклад, якщо дані про клієнтів будуть втрачені, доведеться заново збирати потрібну інформацію. А це втрата часу, фінансів, та й конкуренти в цей час скористаються ситуацією і захоплять ринок.
У сучасних умовах, коли інформація має величезне значення, вжиття заходів для запобігання несанкціонованого доступу, попередження втрати або пошкодження інформації стають невід'ємною частиною роботи будь-якої компанії. За даними статистики, в США 80% компаній, які втратили інформацію, припиняли свою діяльність протягом року. Серед решти 20% близько половини проіснувало не більше 4 років.
Останнім часом все більше підприємств відмовляються від паперових сховищ інформації і переходять до комп'ютерної обробки документів. Система зберігання інформації повинна бути максимально захищена як від випадкового, так і від не коректного пошкодження або спотворення інформації. При створенні бази даних розробник повинен спланувати її таким чином, щоб будь-який користувач не міг зробити що-небудь, не маючи на це відповідних прав. Не слід сподіватися на компетентність користувача і його порядність. Можливо виправлення або видалення даних не зі злого умислу, а просто через неуважність або помилки. Система, наскільки це можливо, повинна перешкоджати подібним діям.
Система управління базами даних Microsoft SQL Server 2000 має різноманітні засоби забезпечення захисту даних. Ця глава присвячена детальному знайомству з системою безпеки SQL Server 2000.
Якщо ваша база даних призначена для використання більш ніж однією людиною, необхідно подбати про розмежування прав доступу. У процесі планування системи безпеки слід визначити, які дані можуть переглядати ті чи інші користувачі і які дії в базі даних їм дозволено при цьому робити.
Після проектування логічної структури бази даних, зв'язків між таблицями, обмежень цілісності та інших структур необхідно визначити коло користувачів, які будуть мати доступ до бази даних. Щоб дозволити цим користувачам звертатися до сервера, створіть для них облікові записи в SQL Server або надайте їм доступ за допомогою облікових записів в домені, якщо ви використовуєте систему безпеки Windows NT. Дозвіл доступу до сервера не дає автоматично доступу до бази даних та її об'єктів.
Другий етап планування системи безпеки полягає у визначенні дій, які може виконувати в базі даних конкретний користувач. Стать ний доступ до бази даних і всім її об'єктах має адміністратор, який є свого роду господарем бази даних - йому дозволено все. Друга людина після адміністратора - це власник об'єкта. При створенні будь-якого об'єкта в базі даних йому призначається власник, який може встановлювати права доступу до цього об'єкта, модифікувати його і видаляти. Третя категорія користувачів має права доступу, видані їм адміністратором або власником об'єкта.
Ретельно плануйте права, що видаються користувачам у відповідності до займаної посади і необхідністю виконання конкретних дій. Так зовсім необов'язково призначати права на зміну даних у таблиці, що містить відомості про зарплату співробітників, директору компанії. І, звичайно ж, не можна надавати подібні права рядовому співробітникові. Ви можете видати права тільки на введення нових даних, наприклад інформації про нових клієнтів. Неправильний введення такої інформації не завдасть серйозного збитку компанії, але якщо додати до прав введення ще й можливість виправлення або видалення вже існуючих даних, то зловмисник, який заволодів паролем, може завдати істотні фінансові втрати. Крім цього, слід врахувати збиток від роботи користувачів, не сильно замислюються про наслідки своїх дій.
Правильно спроектована система безпеки не повинна дозволяти користувачеві виконувати дії, що виходять за рамки його повноважень. Не зайвим також буде передбачити додаткові засоби захисту, наприклад, не дозволяти видаляти дані, якщо термін їх зберігання не закінчився, тобто вони не втратили актуальності. Можна також надавати службовцям, які нещодавно влаштувалися на роботу, мінімальний доступ або доступ тільки в режимі читання. Пізніше їм можна буде вирішити і зміну даних.
Слід уважно ставитися до руху співробітників усередині компанії, їх переходах з одного відділу в іншій. Зміни займаної посади повинні негайно відбиватися на правах доступу. Своєчасно видаляйте користувачів, які більше не працюють в компанії. Якщо ви залишите людині, обіймав керівну посаду і пішов у конкуруючу фірму, доступ до даних, він може скористатися ними і завдати шкоди вашій компанії. Якщо людина йде у відпустку або їде у тривале відрядження, потрібно тимчасово заблокувати його профіль.
При створенні паролів виконуйте стандартні рекомендаціям. Бажано, щоб пароль включав в себе не тільки символи, а й цифри. Слідкуйте, щоб користувачі не застосовували в якості пароля рік народження, номер паспорта, машини або інші часто використовувані дані. Встановіть обмежений термін дії пароля, після закінчення якого система зажадає у користувача змінити пароль. Для досягнення максимального ступеня безпеки використовуйте аутентифікацію користувачів засобами Windows NT, оскільки операційні системи цього сімейства надають безліч дуже корисних засобів захисту.
Система безпеки SQL Server 2000 базується на користувачах та облікових записах. Користувачі проходять наступні два етапи перевірки системою безпеки. На першому етапі користувач ідентифікується по імені облікового запису та паролю, тобто проходить аутентифікацію. Якщо дані введені правильно, користувач підключається до SQL Server. Підключення до SQL Server, або реєстрація, не дає автоматичного доступу до баз даних. Для кожної бази даних сервера реєстраційне ім'я (або обліковий запис - login) має відображатися в ім'я користувача бази даних (user). На другому етапі, на основі прав, виданих користувачеві як користувачу бази даних (user), його реєстраційне ім'я (login) отримує доступ до відповідної бази даних. У різних базах даних login одного і того ж користувача може мати однакові або різні імена user з різними правами доступу.
Для доступу програм до баз даних їм також знадобляться права. Найчастіше додаткам видаються ті ж права, що надані користувачам, що запускають ці програми. Однак для роботи деяких додатків необхідно мати фіксований набір прав доступу, що не залежать від прав доступу користувача. SQL Server 2000 дозволяє надати такі із застосуванням спеціальних ролей додатки.
Отже, на рівні сервера система безпеки оперує такими поняттями:
Про аутентифікація (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).
Змішаний режим дозволяє користувачам реєструватися як засобами Windows NT, так і засобами SQL Server. Крім того, цей режим пропонує деякі зручності в порівнянні з першим. Зокрема, при аутентифікації тільки засобами домену Windows NT, якщо користувач не має облікового запису в домені Windows NT, то він не зможе отримати доступу до сервера баз даних. Змішаний режим аутентифікації дозволяє уникнути цієї проблеми.
При виборі режиму аутентифікації слід виходити як з вимог забезпечення найбільшої безпеки, так і з міркувань простоти адміністрування. Якщо ваша організація невелика і посади адміністратора мережі і адміністратора баз даних поєднує одна людина, то зручніше використовувати аутентифікацію Windows NT. Якщо ж в організації сотні користувачів і функції системного адміністратора і адміністратора баз даних виконують різні люди, то може виявитися, що аутентифікація засобами SQL Server зручніше. В іншому випадку людині, що займається адмініструванням сервера баз даних, доведеться постійно звертатися до системного адміністратора для створення нового користувача, зміни пароля або для перекладу користувача з однієї групи в іншу. До того ж системний адміністратор буде мати можливість призначати права доступу на свій розсуд, а це зовсім ні до чого.
З іншого боку, кожен користувач організації, швидше за все, має на домені обліковий запис, адмініструванням якою займається системний адміністратор. Завдяки аутентифікації Windows NT адміністратор баз даних може використовувати вже готові облікові записи, а не відволікатися на створення нових.
Зверніть увагу, що мова йде тільки про право підключення користувача до сервера баз даних. Після реєстрації користувача в SQL Server спосіб перевірки прав доступу до конкретної бази даних однаковий для обох режимів аутентифікації.
Для встановлення з'єднання з сервером SQL Server 2000, що знаходиться в домені, з яким не встановлені довірчі відносини, можна використовувати аутентифікацію SQL Server. Аутентифікація SQL Server також використовується, коли взагалі немає можливості зареєструватися в домені. Наприклад, при підключенні до SQL Server 2000 по Інтернету.
При роботі з аутентифікацією SQL Server доступ також надається на основі облікових записів. Але в цьому випадку використовуються облікові записи SQL Server, а не Windows NT.
Для аутентифікації засобами SQL Server Server член стандартної ролі сервера sysadmin або securityadmin повинен створити і настроїти для користувача обліковий запис, в яку входить ім'я облікового запису, унікальний ідентифікатор SQL Server і пароль. Вся ця інформація буде зберігатися в системній базі master. Створювана обліковий запис не має відношення до облікових записів Windows NT.
У цьому режимі при спробі користувача одержати доступ до SQL Server сервер сам перевіряє правильність імені користувача та пароль, порівнюючи їх з даними в системних таблицях. Якщо дані, введені користувачем, збігаються з даними SQL Server, користувачеві дозволяється доступ до сервера. В іншому випадку спроба доступу відхиляється і видається повідомлення про помилку.
Аутентифікація SQL Server може застосовуватися в таких випадках: О для користувачів Novell NetWare, Unix і т. д.;
Про при підключенні до SQL Server 2000 через Інтернет, коли реєстрація в домені не виконується;
Про під управлінням операційної системи Windows 98.
Врахуйте, що в цьому випадку адміністратор SQL Server 2000 сам повинен періодично попереджати користувачів про необхідність змінити пароль, щоб убезпечити систему від несанкціонованого доступу, оскільки на відміну від Windows NT, в SQL Server відсутні подібні засоби системи безпеки.
У більшості випадків обліковий запис в SQL Server створюється з метою надання доступу. Але бувають ситуації, коли необхідно заборонити доступ користувачеві або групі. Наприклад, при наявності складної системь! безпеки Windows NT доступ зазвичай надається групі користувачів. Однак якщо у групі є людина, якій не можна дозволяти доступ до SQL Server, його необхідно прибрати з цієї групи. Але такий підхід незадовільний, якщо група призначена не тільки для об'єднання користувачів, що мають доступ до SQL Server, але має ще й якісь додаткові функції. SQL Server дозволяє створити обліковий запис з метою заборони доступу. Це гарантує, що користувач ніяким чином не зможе встановити з'єднання з сервером. Створивши групу Windows NT і заборонивши їй доступ до SQL Server, ви можете включати до неї користувачів, яким необхідно відмовити в доступі.
Після установки SQL Server створюються дві стандартні облікові записи: BUILTINXAdministrators і sa.
Про BUILT INNAdministrators - це профіль Windows NT, що забезпечує автоматичний доступ усім членам групи Administrators до SQL Server. Обліковий запис BUILTINNAdministrators за замовчуванням є членом вбудованої ролі сервера sysadmin. Таким чином, системні адміністратори отримують повний доступ до всіх баз даних. У ситуації, коли функції системного адміністратора і адміністратора баз даних виконують різні люди, швидше за все, слід виключити цю обліковий запис з ролі sysadmin, а можливо, і взагалі видалити.
Про sa - це спеціальна обліковий запис SQL Server для адміністратора. За умовчанням вона присвоєна вбудованої системної ролі сервера sysadmin і не може бути змінена. Цей обліковий запис збережена в цій версії SQL Server для збереження сумісності з додатками, написаними для попередніх версій. Хоча s а й має адміністративні права, її не рекомендується використовувати в SQL Server 2000. Замість цього слід створити нових користувачів і включити їх в адміністративну групу sysadmin. Обліковий запис s а залиште на крайній випадок, коли облікові записи адміністраторів виявляться недоступними або ви забудете пароль.
У процесі установки SQL Server 2000 майстер установки пропонує ввести пароль для облікового запису sa, але він також може бути залишений і порожнім. У цьому випадку слід обов'язково встановити новий пароль відразу ж після установки. У попередніх версіях не було можливості встановлювати пароль облікового запису sa під час встановлення сервера, і цей пароль завжди був порожнім.
Фундаментом системи безпеки SQL Server 2000 є облікові записи
(Login), користувачі (user), ролі (role) і групи (group). T
Користувач, що підключається до SQL Server, повинен ідентифікувати себе, використовуючи обліковий запис. Після того як клієнт успішно пройшов аутентифікацію, він отримує доступ до SQL Server. Для отримання доступу до будь-якої бази да них обліковий запис користувача (login) відображається в користувача даної бази даних (user). Об'єкт «користувач бази даних» застосовується для надання доступу до всіх об'єктів бази даних: таблиць, уявленням, збереженим процедур і т. д. У користувача бази даних може відображатися:
Про обліковий запис Windows NT;
Про група Windows NT;
Про обліковий запис SQL Server.
Подібне відображення облікового запису необхідно для кожної бази даних, доступ до якої хоче отримати користувач. Відображення зберігаються в системній таблиці sysusers, яка є в будь-якій базі даних. Такий підхід забезпечує високу ступінь безпеки, оберігаючи від надання користувачам, що отримала доступ до SQL Server, автоматичного доступу до всіх баз даних та їх об'єктів. Користувачі баз даних, у свою чергу, можуть об'єднуватися в групи і ролі для спрощення управлінням системою безпеки.
У ситуації, коли обліковий запис не відображається у користувача бази даних, клієнт все-таки може отримати доступ до бази даних за допомогою гостьового ім'ям guest, якщо воно, зрозуміло, є в базі даних. Звичайно користувачеві guest надається мінімальний доступ тільки в режимі читання. Але в деяких ситуаціях і цей доступ необхідно запобігти.
Якщо в мережі є невелика кількість користувачів, то досить легко надати доступ кожному користувачеві персонально. Однак у великих мережах з сотнями користувачів подібний підхід займе багато часу. Набагато більш зручним і ефективним є підхід, коли доступ до SQL Server 2000 надається цілим групам користувачів. Саме такий підхід можливий при аутентифікації засобами Windows NT/2000, коли на рівні домену створюється кілька груп, кожна з яких призначена для вирішення специфічних завдань. На рівні SQL Server 2000 такій групі дозволяється доступ до сервера, надаються необхідні права доступу до баз даних та їх об'єктів. Досить включити обліковий запис Windows NT в одну з груп, і користувач отримає всі права доступу, надані цій групі. Більше того, одна і та ж обліковий запис може бути включена у безліч груп Windows NT, що дасть цього облікового запису можливість користуватися правами доступу, наданими всім цим групам. Адміністратор SQL Server 2000 повинен сам вирішити, як зручніше надавати доступ до сервера: персонально кожного облікового запису або групі в цілому.
Після того як користувач пройшов аутентифікацію та отримав ідентифікатор облікового запису (login ID), він вважається зареєстрованим і йому надається доступ до сервера. Для кожної бази даних, до об'єктів якої користувачеві необхідно отримати доступ, обліковий запис користувача (login) асоціюється з користувачем (user) конкретної бази даних. Користувачі виступають у якості спеціальних об'єктів SQL Server, за допомогою яких визначаються всі дозволи доступу і володіння об'єктами в базі даних.
Ім'я користувача може використовуватися для надання доступу як конкретній людині, так і цілій групі людей (залежно від типу облікового запису).
При створенні бази даних визначаються два стандартних користувача: db о і guest.
Якщо обліковий запис (login) не пов'язується явно з користувачем (user), останньому надається неявний доступ з використанням гостьового імені guest. Тобто всі облікові записи, які отримали доступ до SQL Server 2000, автоматично відображаються в користувачів guest у всіх базах даних. Якщо ви вилучили з бази даних користувача guest, то облікові записи, що не мають явного відображення облікового запису в ім'я користувача, не зможуть отримати доступу до бази даних. Тим не менш, guest не має автоматичного доступу до об'єктів. Власник об'єкта повинен сам вирішувати, дозволяти користувачеві guest цей доступ чи ні. Звичайно користувачеві guest надається мінімальний доступ в режимі "тільки читання".
Для забезпечення максимальної безпеки можна видалити користувача guest з будь-якої бази даних, крім системних баз даних master і Tempdb. У першій з них guest використовується для виконання системних збережених процедур звичайними користувачами, тоді як у другій дозволяє створювати будь-яким користувачам тимчасові об'єкти.
Власник бази даних (DataBase Owner, DBO) - спеціальний користувач, що володіє максимальними правами в базі даних. Будь-який член ролі sysadmin автоматично відображається в користувача dbo. Якщо користувач, який є членом ролі sys admin, створює який-небудь об'єкт, то власником цього об'єкта призначається не даний користувач, a dbo. Наприклад, якщо Liliya, член адміністративної групи, створює таблицю ТаИ ЕА, то повне ім'я таблиці буде не Lil iya. ТаИеА, a dbo.ТаИ ЕА. У той же час, якщо Liliya, не будучи учасником ролі сервера sysadmin, полягає в ролі власника бази даних db_owner, то ім'я таблиці буде Li I i уа. ТаИ ЕА.
Користувача dbo не можна видалити.
Для зв'язування облікового запису (login) з певним ім'ям користувача (user) можна скористатися наступною збереженої процедурою:
sp_adduser [@ loginame =] 'login' [, [@ name_in_db =] 'user'] [. [@ grpname =] 'role']
Нижче дається пояснення використаних у ній параметрів:
Про login-ім'я облікового запису, яку необхідно пов'язати з ім'ям користувача бази даних;
Про user - ім'я користувача бази даних, з яким асоціюється Цей обліковий запис (у базі даних заздалегідь не повинно існувати користувача з вказаним ім'ям);
Про role - цей параметр визначає роль, до якої даний користувач буде включений (докладніше про ролях буде розказано пізніше). Процедура, що зберігається sp_grantdbaccess дозволяє відобразити обліковий запис Windows NT в ім'я користувача:
sp_grantdbaccess [@ loginame =] 'login' [, [@ name_in_db =] 'user']
Параметри означають наступне:
Про login-ім'я облікового запису користувача або групи користувачів Windows NT, яким необхідно надати доступ до бази даних. Ім'я повинно забезпечуватися посиланням на домен, в якому обліковий запис визначена. Зазначеною облікового запису не обов'язково повинен бути наданий персональний доступ до SQL Server. Цілком можливо, що з'єднання з сервером встановлюється внаслідок членства в групі Windows NT, яка має доступ до сервера;
Про user - ім'я користувача бази даних, з яким асоціюється Цей обліковий запис.
Користувач, який створює об'єкт у базі даних, наприклад, таблицю, збережену процедуру або подання, стає власником об'єкта. Власник об'єкта (database object owner) має всі права доступу до створеного ним об'єкту. Щоб користувач міг створити об'єкт, власник бази даних (dbo) повинен надати користувачеві відповідні права. Повне ім'я створюваного об'єкта включає в себе ім'я створив його користувача. Якщо користувач хоче звернутися до таблиці, використовуючи тільки її ім'я і не вказуючи власника, SQL Server застосовує наступний алгоритм пошуку.
1. Шукається таблиця, створена користувачем, який виконує запит.
2. Якщо таблиця не знайдена, то шукається таблиця, створена власником бази даних (dbo).
Припустимо, користувач Liss намагається звернутися до таблиці Lil iya. TableA, просто використовуючи ім'я Tab! ЕА. Оскільки таблиця, створена Li I iya, не відповідає ні першому, ні другому критерієм пошуку, то таблиця ТаИеА знайдена не буде і користувач отримає повідомлення про помилку. Для отримання доступу до таблиці необхідно ввести ім'я, що включає власника об'єкта, тобто Liliya.TableA.
Власник об'єкта не має спеціального паролю або особливих прав доступу. Він неявно має повний доступ, але повинен явно надати доступ іншим користувачам.
SQL Server дозволяє передавати права володіння від одного користувача іншому. Щоб видалити власника об'єкта з бази даних, спочатку необхідно видалити всі об'єкти, які він створив, або передати права на їх володіння іншому користувачеві. Для цього можна використовувати збережену процедуру sp_changeobjectowner, що має наступний синтаксис:
sp_changeobjectowner [@ objname =] 'object', [(Pnewowner =] 'owner'
Тут з допомогою першого параметра вказується ім'я об'єкта, а за допомогою другого - ім'я користувача, який стане новим власником зазначеного об'єкта.
Роль - це потужний інструмент, доданий до SQL Server 7.0, щоб замінити групи, які використовувалися в попередніх версіях. Роль дозволяє об'єднувати користувачів, що виконують однакові функції, для спрощення адміністрування системи безпеки SQL Server.
У SQL Server реалізовано два види стандартних ролей: на рівні сервера і на рівні баз даних. При установці SQL Server 2000 створюється 9 фіксованих ролей сервера і 9 фіксованих ролей бази даних. Ці ролі ви не зможете видалити, крім того, не можна модифікувати права їх доступу. Ви не зможете надати користувачеві права, які мають фіксовані ролі сервера, іншим способом, окрім як включенням його в потрібну роль.
У попередніх версіях SQL Server для адміністрування сервера можна було використовувати тільки обліковий запис sa або її аналог. Інакше кажучи, ви могли дати або всі права, або ніяких. Тепер в SQL Server ця проблема вирішена шляхом додавання ролей сервера (server role), які дозволяють надати операторам сервера тільки ті права, які адміністратор вважатиме за можливе надати. Ролі сервера не мають відношення до адміністрування баз даних. Можна включити будь-який обліковий запис 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) дозволяють об'єднувати користувачів в одну адміністративну одиницю і працювати з нею як із звичайним користувачем. Можна призначити права доступу до об'єктів бази даних для конкретної ролі, при цьому ви автоматично наділяєте всіх членів цієї ролі однаковими правами. Замість того щоб надавати доступ кожному конкретному користувачу, а згодом постійно стежити за змінами, можна просто включити користувача в потрібну роль. Якщо співробітник переходить в інший відділ, потрібно просто видалити його з однієї ролі і додати в іншу. Створіть необхідну кількість ролей, які охоплювали б усі різноманіття дій з базою даних. Пізніше, при зміні функцій членів однієї з ролей, достатньо змінити права доступа для цієї ролі, а не встановлювати нові права для кожного користувача.
У роль бази даних можна включати: Про користувачів SQL Server; Про роль SQL Server
Про користувачів Windows NT; '
Про групи Windows NT, яким попередньо наданий доступ до потрібної базі даних.
Засоби Enterprise Manager дозволяють додавати в роль бази даних тільки користувачів бази даних (user). Використовуйте збережену процедуру sp_addrolemember, щоб задіяти всі можливості SQL Server 2000:
sp_addrolemember [@ ro1ename =] 'role', [@ membername =] 'security_account'
Тут параметри означають наступне: Про role-назва ролі SQL Server в поточній базі даних;
Про security_account - ім'я того об'єкта системи безпеки, які необхідно включити в роль. В якості такого об'єкта можуть виступати як облікові записи SQL Server, так і користувачі і групи Windows NT, яким надано доступ до сервера баз даних.
При створенні бази даних для неї визначаються стандартні ролі бази даних, які, так само як і стандартні ролі сервера, не можуть бути змінені або видалені. Стандартні ролі баз даних (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. Ця роль має спеціальне призначення, оскільки її членами є всі користувачі, що мають доступ до бази даних. Не можна явно встановити членів цієї ролі, тому що всі користувачі й так автоматично є її членами. Використовуйте цю роль для надання мінімального доступу користувачам, для яких права доступу до об'єктів не визначені явно. Якщо в базі даних дозволений користувач guest, то встановлений для publ i з доступ будуть мати всі користувачі, які отримали доступ до SQL Server. Роль public є у всіх базах даних, включаючи системні бази даних master, tempdb, msdb, model, І не може бути вилучена.
Групи Windows NT можуть бути використані аналогічно ролям SQL Server. Можна створити один обліковий запис (login) для групи Windows NT і включати відповідних користувачів замість ролі в групу Windows NT. Вибір методу адміністрування залежить від вас.
Система безпеки SQL Server реалізована на найнижчому рівні - рівні бази даних. Це найкращий, найбільш дієвий метод контролю діяльності користувачів незалежно від програм, що використовуються ними для підключення до SQL Server. Тим не менше зустрічаються ситуації, коли необхідний постійний набір прав для доступу до бази даних з програми. Особливо це стосується роботи з великими базами даних, що мають безліч складних взаємозалежних таблиць з тисячами або мільйонами записів. Частіше за все для роботи з такими базами даних створюються спеціальні програми.
Крім того, ви можете захотіти, щоб користувачі отримували доступ до бази даних лише з допомогою певної програми, не даючи можливості безпосередньо звертатися до даних. Наприклад, мобільні користувачі можуть використовувати спеціальну клієнтську програму, за допомогою якої вони оперують даними, встановлюючи зв'язок з сервером через незахищені глобальні комунікації.
SQL Server вирішує перераховані проблеми шляхом використання ролі при розкладання, створюваної на рівні бази даних. Відмінності між стандартними ролями і роллю додатка фундаментальні. Роль додатки не має чле нів. Користувачі SQL Server або Windows NT не можуть бути додані в цю роль. Роль активізується, коли додаток встановлює з'єднання. Користувач, що працює в цей час з додатком, не є членом ролі - тільки його додаток використовує встановлене з'єднання.
Перед використанням ролі додатку необхідно спочатку створити його. При створенні ролі вкажіть її ім'я та пароль для доступу. Створення ролі засобами Transact-SQL виконується за допомогою наступної системної збереженої процедури:
sp_addappro1e [@ rolename =] 'role'. [(^ Password =] 'password'
Перший параметр визначає ім'я, яке буде мати створювана роль додатка, другий - пароль, який буде використовуватися для активізації ролі.
Створення ролі докладання засобами Enterprise Manager виконується за допомогою вікна Database Role Properties - New Role (властивості ролей баз даних - нова роль), яке також використовується для створення звичайних користувальницьких ролей. Щоб створювана роль була роллю додатка, досить встановити перемикач Application role (роль додатка) і ввести пароль. Робота із зазначеним вікном буде розглянута в одному з наступних розділів цієї глави.
Додаток може бути спроектовано так, щоб користувач, що працює з ним, повинен був вводити пароль для активізації ролі додатка. Однак найчастіше пароль вводиться самим додатком непомітно для користувача. Додатково, для забезпечення максимальної безпеки, пароль може бути зашифрований перед своєю відправкою до SQL Server по мережі.
У процесі підключення додаток повинен активізувати роль, передавши пароль, асоційований з даною роллю. Для цього додаток використовує наступну збережену процедуру.
sp_setapprole [(ЕгоТепате =] 'role', [^ password =] (Encrypt N 'password'} | 'password' [. [^ encrypt =] 'encrypt_style']
Розглянемо параметри детальніше: Про role-ім'я ролі додатка, що визначено в базі даних;
Про password-пароль, який додаток повинен передати сервера для активізації ролі додатка;
Про encrypt_styl e - застосовувана схема шифрування паролів. Даний параметр може мати два значення: попі (шифрування не застосовується) і odbc (шифрування з застосуванням функції ODBC encrypt).
Коли роль додатка активізується, всі права доступу, встановлені в межах сеансу для користувача, груп чи ролей, губляться до закінчення роботи програми. З'єднання отримує права, встановлені для ролі докладання в базі даних, в якій ця роль існує. Тимчасовий «забування» прав доступу, привласнених встановив з'єднання користувачеві, потрібно для усунення конфліктів доступу. В іншому випадку, якщо користувачеві заборонено читання даних, а додатку необхідно вважати дані, доступ був би відхилений, так як заборона доступу має переваги над наданням доступу.
Оскільки роль додатку має права лише в тій базі даних, в якій вона створена, а всі дозволи для облікових записів, груп і ролей, до яких належить користувач, губляться, то доступ до інших баз даних можлива лише за допомогою гостьового ім'ям guest. Отже, якщо ім'я guest в базі даних не існує, то з'єднання не зможе отримати доступ до даних. Якщо ж ім'я guest не видалено з бази даних, з'єднання зможе отримати доступ до об'єктів бази тільки в тому випадку, якщо дозволу явно видані для користувача guest. Перед встановленням з'єднання з використанням ролі докладання користувачеві спочатку потрібно отримати доступ до SQL Server. Для цього припустимі обидва режими аутентифікації користувачів.
Якщо додаток спроектовано для виконання різних завдань з використанням різних прав доступу, необхідно створити окрему роль для кожної виконуваної задачі. Додаток має сама потурбуватися про переключення ролей.
Як би добре не була спланована система безпеки SQL Server 2000, залишається можливість копіювання файлів з даними і переглянути їх на іншому комп'ютері. Крім того, з використанням спеціальних пристроїв дані можуть бути перехоплені при передачі їх по мережі. Необхідно продумати кошти фізичних чеський захисту даних. Врахуйте, що дані у файлах бази даних зберігаються у відкритій формі, тобто їх можна переглянути в текстовому редакторі. Звичайно, вони не будуть структуровані, але все ж частину інформації можна буде прочитати.
Шифрування - це метод, використовуваний SQL Server для зміни даних до нечитабельною форми. Шифрування гарантує, що цінний конфіденційна інформація не буде переглянута ким би то не було. Ви можете скопіювати дані, але нічого не зможете з ними зробити. Для перегляду даних авто-різірованнимі користувачами використовується дешифрування. . SQL Server дозволяє шифрувати наступні дані:
• будь-які дані, передані між сервером і клієнтом по мережі;
• паролі облікових записів SQL Server або ролей програми;
• код, використаний для створення об'єктів бази даних (збережених процедур,
уявлень, тригерів і т. д.).
Паролі облікових записів і ролей програми завжди зберігаються в системних таблицях SQL Server в зашифрованій формі. Це охороняє їх від перегляду будь-яким користувачем, включаючи адміністратора. Крім того, пароль ролі додатка може бути зашифрований перед відправкою його на сервер.
Якщо код тригера, подання або збереженої процедури містить дані або алгоритм, які необхідно зберегти в таємниці, використовуйте шифрування цих об'єктів.
Шифрування даних при передачі їх по мережі гарантує, що ніяке додаток або пристрій не зможе їх прочитати, навіть якщо і перехопить. Шифроване з'єднання дозволяє також запобігти перехоплення паролів користувачів.
Якщо ви хочете шифрувати дані при передачі їх по мережі, необхідно використовувати мережеву бібліотеку Multiprotocol Net-Library.
У своїй роботі SQL Server створює і використовує безліч файлів - бази даних, журнали помилок, резервні копії, файли для експорту та імпорту даних та багато іншого. Служби SQL Server на рівні операційної системи виконуються у вигляді процесів. Для нормальної роботи SQL Server необхідно, щоб ці процеси мали повний доступ до всіх вказаних вище файлів на рівні файлової системи. Для цього на рівні операційної системи потрібно надати відповідні права облікових записів, які використовуються для запуску SQL Server. Найкраще керувати правами доступу безпосередньо на
рівні файлів і папок. Для цього сервер повинен працювати під управлінням операційної системи Windows NT і мати файлову систему NTFS.
Якщо сервер стартує як служба, необхідно надати повні права доступу облікових записів, що використовуються для запуску служб. Якщо ж старт SQL Server виконується з командного рядка або на комп'ютері під управлінням Windows 98, то сервер буде мати права доступу облікового запису користувача, що виконав запуск. Якщо для запуску сервера використовується обліковий запис локальної системи, то доступ повинен надаватися користувачеві SYSTEM.
З метою обмеження можливостей неавторизованого доступу для файлів SQL Server необхідно встановити заборону на читання, видалення, зміну та виконання всім користувачам, крім безпосередньо SQL Server.
Коли користувачі підключаються до SQL Server, дії, які вони можуть виконувати, визначаються правами (дозволів), виданими їх облікового запису, групі або ролі, в якій вони перебувають.
Права в SQL Server можна розділити на три категорії: Про права на доступ до об'єктів баз даних; Про права на виконання команд Transact-SQL; Про неявні права (дозволу).
Після створення користувач не має жодних прав доступу, крім тих, які дозволені для спеціальної ролі бази даних public. Права, надані цій ролі, доступні для всіх користувачів у базі даних.
Права користувачеві видаються адміністратором або власниками баз даних або конкретних об'єктів баз даних. Для надання користувачу певного набору прав можна використовувати ролі. Створивши кілька ролей і надавши їм необхідні права доступу, адміністратор бази даних може просто включати користувачів у відповідні ролі. Користувач автоматично отримує всі права доступу, визначені для ролі. Стандартні ролі бази даних вже мають певний набір прав. Наприклад, члени ролі db_datareader можуть переглядати будь-які дані в будь-якій таблиці.
Важливо бути обережним з наданням дозволів на доступ до даних. Необхідно уважно контролювати права доступу, що видаються користувачеві як безпосередньо, так і через членство в групах Windows NT і ролях SQL Server. Особливо це стосується великих систем безпеки з тисячами користувачів і десятками груп. Ви повинні бути впевнені, що існуюча система безпеки дає можливість користувачу виконувати будь-які необхідні дії, але обмежує доступ до інформації, яка не потрібна йому для виконання своїх обов'язків.
Використовуйте всі можливості SQL Server, контролюючи права доступу не тільки на рівні таблиць, але і на рівні стовпців. Вказуючи права доступу до конкретного стовпцю, ви можете більш гнучко управляти системою безпеки.
Аналогічні рекомендації стосуються дозволів на виконання команд Transact-SQL. Можна спроектувати базу даних таким чином, що виконувати конкретні дії - створення таблиць, уявлень, правил, резервних копій і т. д. - будуть строго певні користувачі.
Робота з даними і виконання процедур, що зберігаються вимагають наявності класу доступу, званого правами на доступ до об'єктів баз даних. Під об'єктами маються на увазі таблиці, стовпці таблиць, подання, збережені процедури. Права на доступ до об'єктів баз даних контролюють можливість виконання користувачами, наприклад, команд SELECT, INSERT, UPDATE і DELETE для таблиць і уявлень. Таким чином, якщо користувачеві необхідно додати нові дані в таблицю, йому слід надати право INSERT (вставка записів в таблицю). Надання ж користувачеві права EXECUTE дозволяє йому виконання будь-яких збережених процедур.
Для різних об'єктів застосовуються різні набори прав доступу до них: Про SELECT, INSERT, UPDATE, DELETE, REFERENCES-ці права можуть бути застосовані для таблиці або подання;
Про SELECT та UPDATE - ці права можуть бути застосовані до конкретного стовпцю таблиці або подання;
Про EXECUTE-це право застосовується тільки до збережених процедур і функ ціям. Нижче наводиться більш докладний опис кожного з цих прав.
Про INSERT. Це право дозволяє вставляти в таблицю або подання нові рядки. Як наслідок, право INSERT може бути видано лише на рівні таблиці або подання і не може бути видано на рівні стовпця.
Про UPDATE. Це право видається або на рівні таблиці, що дозволяє змінювати всі дані в таблиці, або на рівні окремого стовпця, що дозволяє змінювати дані тільки в межах конкретного стовпця.
Про DELETE. Це право дозволяє видаляти рядки з таблиці або подання. Як і право INSERT, право DELETE може бути видано лише на рівні таблиці або подання і не може бути видано на рівні стовпця.
Про SELECT. Дозволяє вибірку даних. Може видаватися як на рівні таблиці, так і на рівні окремого стовпця.
Про REFERENCES. Можливість посилатися на зазначений об'єкт. Стосовно до таблиць дозволяє користувачеві створювати зовнішні ключі, що посилаються на первинний ключ або унікальний стовпець цієї таблиці. Стосовно до уявлень право REFERENCES дозволяє пов'язувати уявлення зі схемами таблиць, на основі яких будується уявлення. Це дозволяє відстежувати зміни структури вихідних таблиць, які можуть вплинути на роботу подання. Право REFERENCES не існувало в попередніх версіях SQL Server.
Як випливає з вищевикладеного, доступ можна надавати як на рівні всієї таблиці або подання, так і на рівні окремого стовпця. Зазвичай не практикується управління правами доступу на рівні конкретного стовпця. Якщо в таблиці є один або декілька стовпців, доступ користувачів до яких необхідно обмежити, то в базі даних часто створюється уявлення (view), що включає тільки ті стовпці вихідної таблиці, доступ до яких дозволено.
Надати або відхилити доступ користувачеві бази даних до всіх об'єктів бази даних можна за допомогою вбудованих ролей бази даних. Наприклад, для дозволу читання даних з усіх таблиць і уявлень бази даних досить включити користувача в фіксовану роль db_datareader, а не змінювати права доступу користувача до кожної таблиці та поданням окремо.
Використовуйте команду 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 - користувачеві надаються всі доступні дозволи. Цей параметр можуть використовувати тільки учасники ролі sysadmln;
Про permission - список доступних дозволів, що надаються користувачеві (SELECT, INSERT, UPDATE, DELETE, EXECUTE). Ви можете одночасно надавати декілька дозволів, в цьому випадку їх потрібно розділяти комами;
Про security_account - ім'я того об'єкта системи безпеки, які необхідно включити в роль. В якості таких об'єктів можуть виступати як облікові записи SQL Server, так і користувачі і групи користувачів Windows NT, яким надано доступ до сервера баз даних;
Про table, view, column, stored_procedure, extended_procedure - в якості даних параметрів виступають імена об'єктів у поточній базі даних, для яких необхідно надати доступ;
Про WITH GRANT OPTION-використання даного параметра дозволяє користувачеві, якому ви надаєте права, призначати права на доступ до об'єкта іншим користувачам;
Про AS {group | role) - цей необов'язковий параметр дозволяє вказати участь користувача в ролі, яка має можливість надавати права іншим користувачам.
Як приклад команди розглянемо наступну ситуацію. Вам необхідно надати права на використання команд INSERT і SELECT групі Engineer в таблиці Materials. При цьому потрібно, щоб у подальшому користувачі цієї групи могли самі надавати аналогічні права. Для цього слід виконати наступну команду:
GRANT SELECT. INSERT
ON Materials
TO Engineer
WITH GRANT OPTION
Згодом користувач Valentin, що є членом групи Engineer, може надати аналогічні права іншому користувачеві L iss:
GRANT SELECT, INSERT ON Materials 'TO Liss AS Engineer
У даному випадку необхідно підтвердити, на якій підставі Valentine надає права, тому застосовується параметр AS.
Будьте обережні при використанні параметра WITH GRANT OPTION, оскільки при цьому ви втрачаєте контроль над наданням прав на доступ іншим користувачам. Найкраще обмежити коло людей, що володіють можливістю керувати призначенням прав.
Єдине право доступу, яке може бути надано для збереженої процедури, - це право на її виконання (EXECUTE). Природно, крім цього власник збереженої процедури може переглядати і змінювати її код.
Для функції можна видати право на її виконання, а, крім того, можна видати право REFERENCES, що забезпечить можливість скріплення функції з об'єктами, на які посилається функція. Таке зв'язування дозволяє заборонити внесення змін до структури об'єктів, які могли б призвести до порушення роботи функції.
Щоб надати право на виконання збереженої процедури, можна використовувати Enterprise Manager. Для цього виберіть в лівій панелі Enterprise Manager потрібну базу даних і відкрийте в ній папку Stored Procedures. У правій частині Enterprise Manager буде відображений список збережених процедур, вже створених в базі даних. Управління правами доступу можна здійснювати у вікні Object Properties (властивості об'єктів), показаному на рис. 12.20. Викликати це вікно можна або за допомогою кнопки Permissions (права) у вікні властивостей збереженої процедури, або вибравши в контекстному меню збереженої процедури пункт АН Tasks> Manage Permissions (усі завдання> управління правами).
Щоб дозволити користувачеві виконувати збережену процедуру, потрібно встановити напроти його імені галочку в полі ЕХЕС. Щоб заборонити доступ, потрібно поставити хрестик. Відсутність будь-якого значка на увазі неявне відхилення доступу. Більш докладно про права доступу буде розказано далі в цій главі.
Управління правами доступу до функцій здійснюється аналогічно.
Інший спосіб управління правами доступу полягає в наданні прав конкретному користувачу за допомогою вікна прав доступу користувача. Для цього у вікні Enterprise Manager виберіть необхідну базу даних, а потім папку Users. Клацніть лівою кнопкою миші на обраному користувача. У вікні клацніть на кнопці Permissions (права) та потрібні права.
Система безпеки SQL Server має ієрархічну структуру. Це дозволяє ролям бази даних включати в себе облікові записи та групи Windows NT, користувачів і ролі SQL Server. Користувач же, у свою чергу, може брати участь в кількох ролях. Наслідком ієрархічної структури системи безпеки є те, що користувач може одночасно мати різні права доступу для різних ролей. Якщо одна з ролей, в яких складається користувач, має дозвіл на доступ до даних, то користувач автоматично має аналогічні права. Тим не менш може знадобитися заборонити можливість доступу до даних. Коли ви забороняєте користувачеві доступ до даних або командам Transact-SQL (deny access), тим самим анулюються всі дозволи на доступ, отримані користувачем на будь-якому рівні ієрархії. При цьому гарантується, що доступ залишиться забороненим незалежно від дозволів, наданих на більш високому рівні.
Нехай, наприклад, ви створюєте в базі даних таблицю, доступ до якої за замовчуванням наданий всім користувачам, але вам необхідно тимчасово обмежити доступ певних користувачів до цієї таблиці. Замість того щоб відкликати дозволи на доступ, можна створити роль, якою буде заборонений доступ до цієї таблиці, і включити користувачів у цю роль. Простіше контролювати кілька записів у ролі, яка забороняє доступ, ніж маніпулювати безліччю розрізнених облікових записів, намагаючись пригадати, повернули ви права доступу користувачеві назад. При великій кількості користувачів такий підхід дозволяє спростити адміністрування системи безпеки.
Використовуйте команду DENY для заборони користувачеві доступу до об'єктів бази даних:
DENY
(ALL [PRIVILEGES] | permission [,... n]}
{
[(ColumnC. ... n])] ON {table | view} | ON {table | vi ew} [- (columnC,... N])] I ON {stored_procedure | extended_procedure}
TO security_account [.... n] [CASCADE]
Для заборони виконання команд Transact-SQL застосовується інша команда:
DENY {ALL | statement ^ ... . N]} ТО security_account [.... n]
Параметри даної команди аналогічні параметрам команди GRANT. Параметр CASCADE дозволяє відкликати права не тільки у даного користувача, але також і у всіх тих користувачів, кому він надав дані права. Пояснимо зміст вищесказаного на прикладі. Нехай ви надали користувачеві Sheridan певні права:
GRANT CREATE TABLE
ТО Sheridan
WITH GRANT OPTION
Припустимо, Sheridan надає аналогічні права деяким користувачам. Якщо згодом вам буде потрібно відкликати дозволу у Sheridan, ви виконаєте команду:
DENY CREATE TABLE ТО Sheridan CASCADE
При цьому будуть відкликані і всі дозволи, які Sheridan надав іншим користувачам.