Sql granting

Post on 10-Aug-2015

21 views 0 download

Transcript of Sql granting

Захист даних

Причини можливого пошкодження або втрати даних:• Псування або зміна даних анонімним

користувачем;• Завершення роботи програм при системному

збої, коли база даних залишається в непередбачуваному стані;

• Виникнення конфлікту при виконанні двох і більше програм, що конкурують за одні й ті ж дані;

• Зміна бази даних неприпустимим способом оновлення тощо.

1. Управління доступом до даних• Схема доступу до даних у реляційних СУБД

базується на наступних принципах:1.Користувачі СУБД2.Об’єкти доступу3.Привілеї

Привілеї доступу та передача привілеїв

Привілеї доступу та передача привілеївПривілей Рівень доступу

ALL Вибір, вставка, оновлення, знищення даних і посиланнязовнішнього ключа іншої таблиці на первинний ключ даноїтаблиці

SELECT Читання даних

INSERT Запис нових даних

UPDATE Зміна існуючих даних

DELETE Видалення даних

EXECUTE Виконання чи виклик збереженої процедури

REFERENCES Посилання зовнішнього ключа іншої таблиці на первинний ключданої таблиці

имя_роли Надає всі привілеї, передані даній ролі

Привілеї доступу та передача привілеїв

або

SQL ролі

Роль – це метод забезпечення безпеки на рівні груп привілеїв.

SQL ролі

Реалізація механізму використання ролі для передачі привілеїв складається з наступних кроків:

1) створити роль, використовуючи наступний запит:CREATE ROLE имя_роли;

2) передати цій ролі одну або більше привілеїв, використовуючи наступний запит:GRANT <привилегии> TO имя_роли;

3) передати право на використання цієї ролі одному або більше користувачам за допомогою наступного запиту:GRANT имя_роли TO <список_пользователей>;

При цьому роль може бути передана із зазначенням пропозиції WITH ADMIN OPTION, яке означає, що користувачі, які мають дану роль, можуть передавати право на використання цієї ролі іншим користувачам;

4) при підключенні до БД користувач, що має будь-яку роль (ролі), повинен вказати ім'я цієї ролі.

SQL ролі

Скасування привілеїв

При скасуванні привілеїв запитом REVOKE необхідно враховувати наступні обмеження і правила:

• Привілеї можуть бути видалені тільки тим користувачем, який їх надав;• Привілеї, що присвоєні іншими користувачами, не торкаються;• Видалення конкретної привілеї для користувача А, якому було дано право

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

• Привілеї, передані для загального користування (PUBLIC), можуть бути відібрані тільки у PUBLIC, а не у конкретного користувача або об'єкта БД.

Скасування привілеїв

Таким чином, в результаті каскадного видалення прав:• Користувач Slonov не має права передавати привілей SELECT;• Користувач Ivanov взагалі позбавлений привілеї SELECT, а має

лише привілей DELETE (але з опцією WITH GRANT OPTION);• У користувача Petrov немає ніяких привілеїв на доступ до таблиці

PaySumma. Це сталося, тому що у користувача Slonov відібрано право передачі привілеї SELECT іншим користувачам, а значить, і всі дії, які він виконав, маючи це право, також анульовані (відібраний привілей SELECT у користувача Petrov, яку передав йому Ivanov).

Привілеї на представлення

"no permission for SELECT access to TABLE/VIEW REQUEST"

"no permission for SELECT access to TABLE/VIEW REQUEST"

2. Транзакції

• Транзакція - це група операцій обробки даних, що виконуються як деяка неподільна дія над базою даних, осмислена з погляду користувача.

• Запис даних у БД проводиться тільки при успішному виконанні всіх операцій групи.

• Якщо хоча б одна з операцій групи завершується неуспішно, то БД повертається до того стану, в якому вона була до виконання першої операції групи.

2. Властивості транзакціїТранзакції характеризуються чотирма класичними властивостями:• Властивість атомарності виражається в тому, що транзакція

повинна бути виконана в цілому або не виконана зовсім. СУБД гарантує неможливість фіксації деякої частини дій з транзакції в БД.

• Властивість узгодженості гарантує, що по мірі виконання транзакцій дані переходять з одного узгодженого стану в інший, тобто транзакція не руйнує взаємну узгодженість даних.

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

• Властивість довговічності означає, що якщо транзакція завершена успішно, то зміни в даних, що виконуються в ній, не можуть бути втрачені ні за яких обставин (навіть у випадку подальших помилок або збою системи).

2. Транзакції

2. Паралелізм