Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lectures_Module_3.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
1 Мб
Скачать
☆
      1. Операції, щодо яких специфікуються права доступу

До операцій, стосовно яких специфікуються права доступу, належать стандартні операції з маніпулювання об’єктами бази даних, а саме:

  • означення, пере означення й видалення таблиці або віртуальної таблиці;

  • вибирання, додавання, видалення, оновлення рядків у таблиці або віртуальній у таблиці;

  • виконання збережених процедур.

У кожній конкретній СКБД наведений список операцій над об’єктами бази

даних може розширюватися.

      1. Можливість передавання прав доступу іншим особам

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

    1. Специфікація повноважень

Розглянемо, як означуються права доступу до даних. Інструкція, що дозволяє означити користувача, була описана в підрозділі 1.2. Щойно створе­ний користувач не має жодних повноважень. Надання повноважень користувачу здійснюється командою GRANT.

Передавання повноважень користувачам або ролям

Команда GRANT дає змогу передати повноваження користувачам або ролям. Спрощений синтаксис команди є таким:

GRANT { <операція> | ALL} [(<список стовпці в>)] ON «список об'єкті в> ТО (<користувач> І <роль> | PUBLIC} WITH GRANT OPTION

Специфікатор <операція> вказує, щодо яких операцій описується повноважен­ня. Такими операціями можуть бути: SELECT, INSERT, UPDATE, DELETE та інші. Фраза ALL вказує, що повноваження передаються щодо всіх операцій.

У списку об’єктів зазначаються всі об’єкти бази даних, щодо яких специфіку­ються повноваження. Цей список містить посилання на таблиці й віртуальні таб­лиці. За допомогою параметра <список стовпці в> можна додатково вказати стовпі таблиць.

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

Якщо повноваження передається користувачу, він одержує право виконувати операції згідно з цим повноваженням. Коли повноваження передається ролі, вона ним поповнюється.

Фраза WITH GRANT OPTION означає, що одержувач повноваження отримує також право передавати це повноваження іншому користувачу або ролі.

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

  1. Надати користувачу на ім’я Джон права на виконання будь-яких операцій над

таблицею ФАКУЛЬТЕТ і дозвіл на передавання цих прав іншим користувачам.

GRANT ALL ON ФАКУЛЬТЕТ ТО Джон WITH GRANT OPTION

  1. Надати всім користувачам право переглядати дані з таблиці Лекція.

GRANT SELECT ON ЛЕКЦІЯ ТО PUBLIC

  1. Надати користувачу на ім’я Джон право змінювати стовпець Фонд у таблиці

КАФЕДРА.

GRANT UPDATE (Фонд) ON КАФЕДРА ТО Джон

Необхідно пам’ятати про те, що користувач, що створив таблицю, є власником цієї таблиці. Це означає, що власник має всі повноваження в цій таблиці та може передавати ці повноваження іншим користувачам. Повноваження, які можна призначити іншому користувачеві:

SELECT - Користувач з цим повноваженням може виконувати запити до таблиці.  INSERT - Користувач з цим повноваженням може виконувати команду INSERT в таблиці.  UPDATE - Користувач з цим повноваженням може виконувати команду UPDATE в таблиці. Це повноваження можна також обмежити для певних стовпців таблиці.  DELETE - Користувач з цим повноваженням може виконувати команду DELETE в таблиці.  REFERENCES - Користувач з цим повноваженням може визначати зовнішній ключ, який використовує один або більше стовпців цієї таблицї, як батьківський ключ. Можна обмежити це повноваження для певних стовпців. 

Крім того, існують ще й такі повноваження, як наприклад INDEX, що дає право создавати індекс в таблиці, SYNONYM, що дає право створювати синонім для обекта, і ALTER, що дає право виконувати команду ALTER TABLE в таблиці.

Приклади:

  1. GRANT SELECT, INSERT ON Orders TO Adrian, Diane; - Користувач може надати повноваження SELECT, INSERT для користувачів Adrian, Diane для таблиці Orders.

  2. GRANT UPDATE (comm) ON Salespeople TO Diane; - Користувач обмежує Diane можливістю вносити зміни лише в поле comm таблиці Salespeople.

  3. GRANT ALL ON Customers TO Stephen; - Користувач надає всі можливі повноваження що до таблиці Customers користувачу Stephen.

  4. GRANT SELECT ON Orders TO PUBLIC; - Власник таблиці Orders надає повноваження SELECT всім користувачам.

  5. GRANT SELECT ON Customers TO Adrian WITH GRANT OPTION; - Посля цього Adrian отримав повноваження передавати можливість виконувати SELECT третім особам; він може видати команду - GRANT SELECT ON Diane.Customers TO Stephen.

Відміна повноважень

Виконується за допомогою команди REVOKE. Наприклад,

REVOKE INSERT ON Orders FROM Adrian; - Відміняє повноваження INSERT для Adrian в таблиці Orders.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]