47.26K
Категория: Базы данныхБазы данных

Управление правами доступа в SQL. CУБД Oracle

1.

Управление правами доступа
в SQL
CУБД Oracle

2.

DCL. Управление правами доступа
GRANT
REVOKE
2
Предоставляет или изымает права
доступа к базе данных, так и к
структурам в ней. В совокупности
называются Языком управления
данными (DCL).

3.

Привилегии
GRANT { [объектная_привилегия] [, …] |
[системная_привилегия] [, …] |
[роль] [, …] }
[ ON { [имя_схемы.][объект] [, …]}
ТО {{имя_получателя [, …]| имя_роли [, …] | PUBLIC}
[WITH GRANT OPTION][WIТН ADMIN
OPTION];
В СУБД Oracle различают объектные и системные
привилегии.
Объектные выдают права на работы с уже существующим
объектом.
Системные – права на совершение определенных действий
в системе без привязки к конкретному объекту.
3

4.

Объектные привилегии
SELECT – позволяет другому пользователю Oracle сделать запрос к данным таблицы.
INSERT – позволяет другому пользователю Oracle вставлять строки в таблицу с помощью
команды INSERT.
UPDATE – позволяет пользователю Oracle обновлять строки в таблице вне зависимости от
того, были ли эти строки созданы этим пользователем или нет. Привилегия UPDATE
DELETE – привилегия объектного уровня DELETE позволяет удалять из таблицы любые
существующие строки. С использованием представления можно ограничить то, какие
строки будут удалены.
EXECUTE – даёт возможность пользователю Oracle, владеющему процедурным кодом
базы данных (процедурами, функциями или пакетами), позволить другому пользователю
Oracle вызывать его процедурные объекты.
ALTER – даёт возможность пользователю Oracle изменить определение таблицы или
последовательности.
INDEX – позволяет пользователю Oracle создавать индексы на таблицы владельца.
REFERENCES – позволяет пользователю Oracle обращаться к объектам другого
пользователя.
В конце оператора GRANT для привилегии объектного уровня может быть определена
фраза WITH GRANT OPTION, которая позволяет пользователю Oracle получившему эту
привилегию, передать её другому пользователю Oracle.
4

5.

Системные привилегии
Существует две основные группы привилегий системного уровня:
имеющие в составе имён слово ANY и не имеющие его.
CREATE TABLE
CREATE ANY TABLE
Привилегии системного уровня могут быть даны либо непосредственно
пользователю Oracle, либо роли, которая будет назначена пользователю
Oracle.
Можно дать системную привилегию пользователю PUBLIC, что означает
любого пользователя Oracle.
Привилегии системного уровня могут быть также предоставлены
пользователю Oracle с использованием WITH ADMIN OPTION в конце
оператора GRANT. Это позволяет пользователю Oracle, получившему
такую системную привилегию, передавать её любому другому
пользователю Oracle.
5

6.

Роли
Роль (Role) – это именованный набор привилегий.
-- создание роли
CREATE ROLE имя_роли;
-- роль с паролем
CREATE ROLE имя_роли IDENTIFIED BY пароль;
-- добавление права роли
GRANT select ON имя_таблицы TO имя_роли;
-- добавление роли пользователю
GRANT имя_роли TO имя_пользователя;
-- уничтожение роли
DROP ROLE имя_роли;
6

7.

Стандарные роли
Роль CONNECT - содержит только одну привилегию CREATE
SESSION, позволяющую создавать соединение с базой.
Роль DBA - полный набор привелегий, необходимых администратору
базы.
Роль RESOURCE - базовый набор привелегий, необходимых
разработчику.
Роль DELETE_CATALOG_ROLE — привилегии для удаления информации из таблицы аудита.
Роль SELECT_CATALOG_ROLE - привилегия для чтения
информации из таблиц аудита.
Роль EXP_FULL_DATABASE - необходима пользователю, из-под
учетной записи которого будет производиться полный экспорт базы.
Роль IMP_FULL_DATABASE - необходима пользователю, из-под
учетной записи которого будет производиться полный импорт базы.
7

8.

Успехов в освоении курса!
Савченко Наталья Александровна
[email protected]
8
English     Русский Правила