
- •Віртуальні таблиці (візії) Визначення візії
- •Перейменування атрибутів візії
- •Модифікація змісту візій
- •Тема 14. Обмеження та тригери в sql Активні елементи
- •Ключі відношень Види ключів і обмеження
- •Оголошення первинного ключа
- •Ключі та індекси
- •Оголошення зовнішнього ключа
- •Стратегії забезпечення посилальної цілісності
- •Обмеження рівня атрибутів та кортежів
- •Обмеження not null
- •Обмеження check рівня атрибуту
- •Обмеження check рівня кортежу
- •Модифікація обмежень
- •Тригери в sql Тригери як правила „подія-умова-дія”
- •Тригери instead of
- •Тригери у Transact sql
- •Безпека
- •Категорії збережених процедур Системні збережені процедури
- •Локальні збережені процедури
- •Тимчасові збережені процедури
- •Розширені збережені процедури
- •Основи програмування у Transact-sql
- •Блоки операторів
- •Умовне виконання
- •Використання збережених процедур Виклик збереженої процедури
- •Створення збереженої процедури
- •Безпека даних
- •1.2. Реєстрація користувачів
- •Керування правами доступу
- •Кому надаються права доступу
- •Умови надання прав доступу
- •1.3.3. Об’єкти, на які поширюються права доступу
- •Операції, щодо яких специфікуються права доступу
- •Можливість передавання прав доступу іншим особам
- •Специфікація повноважень
- •Обов’язкові методи захисту
- •Ведення журналів доступу
- •Обхід системи захисту
- •Використання представлень для фільтрації повноважень
- •Хто може створювати представлення?
Безпека
Користувачам можна надати право на виконання збереженої процедури без безпосереднього доступу до об'єктів бази даних, з якими працює збережена процедура, виконавши тим самим інкапсуляцію даних. Крім того, якщо збережену процедуру зашифрувати при створенні або модифікації, користувачам не вдасться прочитати команди Transact-SQL, які містить процедура. Ці функції безпеки дозволяють ізолювати від користувача структуру бази даних, що забезпечує цілісність даних і надійність бази.
Категорії збережених процедур Системні збережені процедури
Системні збережені процедури знаходяться в базі даних Master. Як правило, їх імена
починаються з префікса sp_. Вони призначені для підтримки функцій SQL Server (зокрема, процедур для роботи з переліком об’єктів сервера). До цього відноситься вибірка даних з системних таблиць зовнішніми доданками, адміністрування бази даних і керування безпекою.
Наприклад, дуже часто адміністратору потрібно переглянути відомості про користувачів і
процеси на сервері. Цей важливий етап передує закриттю бази даних або зупинці сервера. Для цього достатньо набрати на консолі QA
sp_who
Рис.15.2. Процеси на сервері при відсутності навантаження: життя вирує
У SQL Server включені сотні системних збережених процедур; їх повний список наведений у розділі «System Stored Procedures» в Books Online.
Рис.15.3. Системні збережені процедури в БД Технічної служби. У БД master їх кілька сот.
Локальні збережені процедури
Локальні збережені процедури зазвичай знаходяться в призначеній для користувача базі даних. Як правило, їх створюють для вирішення певних завдань, які відповідають бізнес-логіці прикладної системи, в її базі даних.
Рис.15.4. Локальні збережені процедури прикладної системи
Тимчасові збережені процедури
Тимчасова збережена процедура схожа на локальну, однак вона існує лише до закриття з'єднання, в якому створена, або до завершення роботи SQL Server. Залежно від типу така процедура видаляється після завершення роботи сервера або розриву з'єднання. Мінливість обумовлена тим, що тимчасові процедури зберігаються в базі даних TempDB. Ця БД створюється лише в оперативній пам’яті, тому при кожному запуску сервера ця база створюється заново, а після закриття сервера всі об'єкти цієї БД зникають.
У TempDb зручно також створювати тимчасові таблиці (з префіксом ##).
Щоб гарантувати унікальність імені тимчасової процедури, SQL Server додає до нього набір символів підкреслення і унікальний номер з'єднання. Тимчасова збережена про-
цедура видаляється з TempDB при закритті з'єднання, в якому вона створена.
Розширені збережені процедури
Розширені процедури звертаються до зовнішніх програм, скомпільованих у вигляді 32-розрядних DLL. Деякі системні збережені процедури також є розширеними. Наприклад, збережена процедура xp_sendmail, яка посилає за заданою адресою поштове повідомлення з вкладеним результуючим набором, є системною та розширеною одночасно. Угода про іменування передбачає використання в іменах розширених збережених процедур префікса хр_. Але інколи ця угода порушується.