Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Lab_03_Oracle (Grant Revoke) (1) / Приклад виконання роботи (Oracle_3 частина 1)

.pdf
Скачиваний:
7
Добавлен:
11.02.2015
Размер:
126.12 Кб
Скачать

Приклад виконання роботи

(частина 1)

КЕРУВАННЯ ДОСТУПОМ

1. Створення ролей

Створити роль з ім'ям Manager і паролем stud_db_manager. Для цього можна використовувати наступну команду:

CREATE ROLE Manager IDENTIFIED BY stud_db_manager;

Опція IDENTIFIED вказує на необхідність підтвердження права користувача на активізацію ролі при використанні команди SET ROLE. Опція EXTERNALLY “перекладає” цю перевірку на операційну систему.

2. Зміна ролей

Знімемо пароль з ролі Manager. Для цього необхідно ввести наступну команду:

ALTER ROLE Manager NOT IDENTIFIED;

3. Створення користувача

Створимо користувача Student з паролем student. Для цього необхідно ввести наступну команду:

CREATE USER Student IDENTIFIED BY Student.

4. Зміна користувача

Для зміни користувача використовується команда ALTER USER. Для використання цієї команди необхідно мати привілей ALTER USER. Для зміни власного пароля даний привілей не потрібен.

Змінимо пароль користувача Student з student на stud. Для цього використовуємо подану нижче команду:

ALTER USER Student IDENTIFIED BY stud;

5. Активізації і відключення ролей

Для виконання активізації і відключення ролей у Вашому поточному сеансі роботи використовується команда SET ROLE. У списку ролей команди SET ROLE можна перелічувати тільки ті ролі, що були Вам раніше надані.

Ви можете використовувати команду SET ROLE для активізації або відключення ролей у наступних випадках:

якщо ролі були надані безпосередньо (командою GRANT); якщо ролі були надані через інші ролі.

Не можна використовувати команду SET ROLE для активізації ролей, що не були вам надані одним з згаданих вище способів.

Формат команди SET ROLE представлений нижче:

SET ROLE {роль [IDENTIFIED BY пароль],…| ALL [EXCEPT роль,…] | NONE}

Активізуємо роль Resource для поточного сеансу роботи користувача. Для цього використовуємо наступні команди:

GRANT Resource TO Student;

SET ROLE Resource IDENTIFIED BY stud_db_manager;

Команда GRANT надає роль Resource користувачу Student. Ця команда розглядається в наступній лабораторній роботі.

Необхідно звернути увагу на те, що всі ролі, не перелічені в списку ролей команди SET ROLE, будуть відключені незалежно від їхнього поточного стану.

6. Надання системних привілеїв і ролей користувачам

Надання системних привілеїв і ролей користувачам і ролям здійснюється за допомогою команди GRANT.

Надамо ролі Manager, створеній в попередній лабораторній роботі, системний привілей SELECT ANY TABLE і роль Connect. Для цього скористаємося наступною командою:

GRANT Connect,SELECT ANY TABLE TO Manager;

Тепер створимо користувача Vasya, якому надамо роль Manager, приєднаємося в якості цього користувача і спробуємо виконати запит з таблиці Stud.Cars:

CREATE USER Vasya IDENTIFIED BY vasya;

GRANT Manager TO Vasya;

ALTER USER Vasya DEFAULT ROLE ALL; DISCONNECT;

CONNECT vasya/vasya; SELECT * FROM Stud.Cars;

Таким чином, користувачу Vasya був наданий системний привілей Manager, що дозволяє йому приєднуватися до бази даних і переглядати всі таблиці (і тільки).

7. Скасування ситемних привілеїв

Для скасування ситемних привілеїв використовується команда

REVOKE.

Якщо скасовується роль у всіх користувачів з використанням ключового слова PUBLIC, Oracle робить роль недоступною всім користувачам, яким вона була надана через PUBLIC. Будь-який користувач, що активізував роль, може продовжувати використовувати привілеї з її домену привілеїв, поки роль залишається активізованою. Згодом користувачі не зможуть активізувати роль, що скасовується. Роль не скасовується у користувачів, яким вона була надана безпосередньо або через інші ролі.

Команда REVOKE може тільки скасовувати привілеї та ролі, що надавалися безпосередньо з використанням команди GRANT. Команда REVOKE не може виконувати наступні дії:

скасовувати привілеї або ролі, не надані об'єкту, у якого виробляється скасування;

скасовувати ролі, надані через операційну систему; скасовувати привілеї або ролі, надані об'єкту, у якого

відбувається скасування, через ролі.

Користувач, роль або PUBLIC не можуть з'являтися більше одного разу у виразі FROM.

Роль Manager, маючи системний привілей SELECT ANY TABLE, надає право переглядати всю інформацію, що міститься в таблицях бази даних. У більшості випадків це небажано, тому даний привілей на сучасний момент у ній можна скасувати, використовуючи наступні команди:

DISCONNECT;

CONNECT Stud/stud;

REVOKE SELECT ANY TABLE FROM Manager; CONNECT Vasya/vasya;

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

SELECT * FROM Stud.Cars;

8. Надання об'єктних привілеїв

Для надання об'єктних привілеїв на специфічний об'єкт використовується команда GRANT.

Об'єктом для надання привілеїв може бути таблиця, представлення, послідовність, процедура, функція, пакет, знімок або синонім для цих об'єктів.

Коли об'єктний привілей надається всім користувачам з використанням ключового слова PUBLIC, Oracle додає цей привілей до домену привілеїв кожного користувача. Усі користувачі відразу можуть використовувати привілей.

Привілей не може з'являтися більше одного разу в списку привілеїв, що будуть надані. Користувачі або ролі також не можуть з'являтися більше одного разу у виразі TO.

Припустимо, що ми хочемо, щоб користувач Vasya зміг переглядати, редагувати, видаляти і додавати дані в таблиці Cars і Routes. Для цього можна надати цьому користувачу привілею

SELECT, INSERT, DELETE і UPDATE на необхідні таблиці:

CONNECT Stud/stud;

GRANT SELECT,INSERT,DELETE,UPDATE ON Stud.Cars TO Vasya;

GRANT SELECT,INSERT,DELETE,UPDATE ON Stud.Routes TO Vasya;

CONNECT Vasya/vasya;

9. Скасування об’єктних привілеїв

Для скасування об’єктних привілеїв на специфічний об'єкт у користувача або ролі необхідно використовувати команду REVOKE.

Наприклад, якщо ми не хочемо, щоб користувач Vasya зміг змінити дані в таблицях Cars і Routes шляхом редагування або видалення записів, а міг тільки переглядати існуючі дані і додавати нові, необхідно скасувати в цього користувача привілею DELETE і UPDATE на відповідні таблиці:

CONNECT Stud/stud;

REVOKE DELETE,UPDATE ON Stud.Cars FROM Vasya; REVOKE DELETE,UPDATE ON Stud.Routes FROM Vasya; CONNECT Vasya/vasya;

Після виконання цих команд користувач Vasya одержить повідомлення про помилку при спробі модифікації даних будь-яким способом.

Соседние файлы в папке Lab_03_Oracle (Grant Revoke) (1)