Організація користувачі у групи за допомогою ролей

Щоб зменшити кількість видаваних дозволів і об’єднати користувачів у групу за принципом наявності в них однакових прав, використовується механізм ролей. Порядок дії при використонні ролей наступний:

1.Необхідно створити роль.

2.Видати цій ролі достатні права.

3.Призначити конкретним користувачам цю роль.

4.При під’єднанні до бази даних вказати, окрім імені користувача, ту роль, яку буде мати під час з’єднання даний користувач.

 

Наведемо приклад. Для початку створимо роль READER: CREATE ROLE READER;

 

Видамо цій ролі права на читання таблиці: GRANT Select ON Tab TO READER;

 

Присвоїмо цю роль користувачу TESTUSER: GRANT READER TO testuser;

Анулювання прав.

Для цього існує команда REVOKE. Вона являє собою копію GRANT, лише із зворотною дією. Приклад: REVOKE Select ON Tab FROM testuser;

При цьому неможливо якось обмежити або розширити права системного адміністратора SYSDBA.

За замовчуванням права на довільний об’єкт в InterBase має лише його власник, а також системний адміністратор SYSDBA. Відповідно, роздавати права за замов-чуванням може лише власник об’єкта. Інший користувач, що не є власником об’єкта, не може видати іншому користувачу права на цей об’єкт, якщо тільки власник не передав іншому користувачу відповідні права із спеціальною опцієї WITH GRANT OPTION. Вказання цієї опції в кінці звичайного речення GRANT означає, що користувач не лише одержує ці права, але може передавати їх другому користувачу. Наприклад: GRANT Select ON Tab TO testuser WITH GRANT OPTION;

Тепер користувач TESTUSER може не лише вибирати записи з таблиці Tab, але і передавати право Select (і лише його) іншим користувачам.

З А В Д А Н Н Я

1. Створіть на сервері нового користувача TestUser з паролем “1234546”.

2. Створіть у базі даних роль MyUser яка наділена правами читати та вставляти записи в таблиці Customer.

3. Присвойте цю роль користувачу TestUser.

4. Присвоїти всім користувачам право читати і виправляти таблицю Customer.

5. Надати всі права всім користувачам відносно таблиць Part, Sales, Items.

 

КОНТРОЛЬНІ ЗАПИТАННЯ

1. Вкажіть серію команд створення нового користувача бази даних InterBase?

2. Що таке роль? Як її створити?

3. Опишіть команду роздачі прав.

4. Яка команда надає відразу всі права?

5. Яка команда видає права відразу всім користувачам?

6. Вкажіть команду анулювання прав.

 


Практична робота № 1

Тема роботи: Використання компоненту Database.

Мета роботи: Навчити використовувати компонент Database для зв’язку з сервером InterBase.

ОСНОВНІ ТЕОРЕТИЧНІ ВІДОМОСТІ.

З’єднання з сервером

Всі звертання з програми до таблиць однієї бази даних на сервері здійснюється через одне з’єднання, на якому замикаються всі компоненти доступу до даних, що мають відповідні значення властивості DatabaseName.

Всі керування одиночним з’єднанням з якою-небудь базою даних здійснюється компонентом TDatabase. В загальному випадку використання цього компонента в програмах баз даних необов’язково. Однак при роботі с серверами SQL він необхідний, так як:

q дозволяє керувати з’єднанням з базою даних;

q дозволяє керувати транзакціями простіше, ніж за допомогою операторів SQL;

q забезпечує реєстрацію користувача на сервері.

При звичайному використанні локальних баз даних можна обійтися і без цього компонента.

Для визначення бази даних (сервера), з якою програма встановлює з’єднання за допомогою компонента TDatabase, частіше використовується властивість AliasName. Властивості DatabaseName і DriverName являють альтернативний спосіб з’єднання. Якщо з’єднання задане властивістю AliasName, то властивість DatabaseName можна використовувати для створення тимчасового псевдоніма, який буде доступний лише для компонентів доступу до даних всередині програми. При клацанні на кнопці списка доступних псевдонімів властивості DatabaseName в Інспекторі об’єктів для довільного компонента доступу до даних, в списку буде доступний і тимчасовий псевдонім компонента TDatabase.

Додаткові можливості керування наборами даних при встановленні з’єднання надають властивості Connected і KeepConnection. Вони дозволяють одночасно із з’єднанням закрити всі активні набори даних. Якщо властивість KeepConnection дорівнює True, то при закритті останнього відкритого набору даних з’єднання залишається відкритим. В іншому випадку з’єднання автоматично закривається. Це дозволяє керувати з’єднанням в різних вихідних ситуаціях.

При підключенні до бази даних потрібно задати значення для параметрів драйвера BDE. Для цього використовується властивість Params, що являє собою звичайний список. В ньому необхідно задавати назви змінюваних параметрів і їх нові значення: USERNAMЕ =SYSDBA PASSWORD =masterkey. Значення параметров можна задавати як статично, так і динамічно під час виконання. Для властивості LoginPrompt рекомендується встановлювати значення False. Ця комбінація працює як під час виконання, так і під час розробки.

З А В Д А Н Н Я

1. Створіть новий проект Delphi.

2. Зверху форми розмістіть панель, на якій знаходяться компоненти для звязку з таблицями бази даних Sales.

3. Нижче панелі розмістіть компонент PageControl з 4 сторінками: Покупець, Товари, Накладні, Оформлення покупки.

4. Створіть за допомогою SQL Explorer аліас MyBase для бази даних Sales з драйвером InterBase.

5. Підключіть набір даних до бази даних із псевдонімом MyBase, який входить до набору даних BDE. Блокуйте видачу логіну базою даних.

6. Запустіть проект на виконання.

7. Оформіть звіт по роботі.

 

КОНТРОЛЬНІ ЗАПИТАННЯ

1. Який компонент здійснює з’єднання з базою даних?

2. Які параметри драйвера BDE необхідно вказати для підключення до БД?

3. Що виконує властивість LoginPrompt?

4. Що виконує властивість Params?

 


Практична робота № 2


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: