Управление доступом пользователей Управление доступом пользователей Администратор базы данных Имя пользователя и пароль Привилегии Пользователи Привилегии • DCL (Data Control Language) • Безопасность базы данных - Безопасность системы - Безопасность данных • Системные привилегии - Получение доступа к базе данных • Привилегии на объект - Манипулирование содержимым объектов базы данных • Схема - Совокупность таких объектов, как таблицы, представления и последовательности. Системные привилегии • Существует более 80 видов привилегий. • Администратор базы данных – это самый высокий уровень системных привилегий. - Регистрация новых пользователей. - Удаление пользователей. - Удаление таблиц. - Архивное копирование таблиц. • Администратор базы данных регистрирует новых пользователей с помощью команды CREATE USER SQL. SQL> CREATE USER scott 2 IDENTIFIED BY tiger; Системные привилегии пользователя • Администратор базы данных может предоставить привилегии зарегистрированному пользователю с помощью команды GRANT. • Обычно пользователь получает следующие системные привилегии: - CREATE SESSION - CREATE TABLE - CREATE SEQUENCE - CREATE VIEW - CREATE PROCEDURE Предоставление системных привилегий Администратор базы данных может предоставить пользователю конкретные привилегии SQL> GRANT create table,системные create sequence, 2 create view 3 TO scott; Grant succeeded. Что такое роль? Пользователи Менеджер Привилегии Предоставление привилегий без роли Предоставление привилегий с ролью Предоставление привилегии с использованием роли Изменение своего пароля • При создании пользователя ему присваивается пароль. • Пользователь может изменить свой пароль с помощью команды ALTER USER. SQL> ALTER USER scott IDENTIFIED BY lion; User altered. Привилегии на объекты Привилегии Таблица Предста на объект вление ALTER + DELETE + Последова- Процедура Снимок тельность + + EXECUTE + INDEX + INSERT + REFERENC ES + SELECT + + UPDATE + + + + + Предоставлений привилегий на объект: синтаксис • Администратор базы данных может разрешить пользователю выполнять действия с конкретным объектами. • Виды привилегий на объект зависят от типа объекта. • Владелец объекта имеет на него все привилегии. • Владелец может предоставлять конкретные привилегии на свой объект. GRANT object_priv [(columns)] ON object TO {user | role | PUBLIC} [WITH GRANT OPTION]; Предоставление привилегий на объект: примеры • Предоставьте привилегию на выборку данных из вашей таблицы S_EMP. SQL> GRANT select 2 ON s_emp 3 TO sue,rich; Grant succeeded. • Предоставьте привилегию UPDATE на определенные столбцы пользователям и ролям. SQL> GRANT update (name , region_id) 2 ON s_dept 3 TO scott, manager; Grant succeeded. Ключевые слова WITH GRANT OPTION и PUBLIC: примеры • Предоставление пользователю возможности передавать привилегии дальше. SQL> GRANT select 2 ON s_emp 3 TO scott 4 WITH GRANT OPTION; Grant succeeded. • Предоставление всем пользователям привилегии SELECT на последовательность S_ORD_ID. SQL> GRANT select 2 ON s_ord_id 3 TO PUBLIC; Grant succeeded. Просмотр предоставленных привилегий Для просмотра привилегий, предоставленных вам или вами, пользуйтесь предоставлениями словаря данных Таблицы словаря данных ROLE_SYS_PRIVS ROLE_TAB_PRIVS USER_ROLE_PRIVS USER_TAB_PRIVS_MADE USER_TAB_PRIVS_RECD USER_COL_PRIVS_MADE USER_COL_PRIVS_RECD Описание Системные привилегии, предоставленные ролям. Привилегии на таблицы, предоставленные ролям. Роли доступные пользователям. Привилегии, предоставленные пользователем на его объекты. Привилегии на чужие объекты, предоставленные пользователю. Привилегии, предоставленные пользователем на определенные столбцы его объектов. Привилегии на столбцы чужих объектов, предоставленные пользователю. Отмена привилегий на объекты • Для отмены привилегий, предоставленных другим пользователем, пользуйтесь командой REVOKE. • Привилегии, предоставленных другим пользователем посредством WITH GRANT OPTION, также будут отменены. • Как пользователь ALICE, отмените привилегию SELECT и INSERT, предоставленные пользователю Scott на таблицу S_DEPT. SQL> REVOKE select, insert 2 ON s_dept 3 FROM scott; Revoke succeeded. Создание синонима • Синонимы (альтернативные имена объектов) упрощают доступ к этим объектам • Возможность ссылки на таблицу, принадлежащую другому пользователю. • Сокращенная форма для длинных имен объектов. SQL> СREATE SYNONYM s_dept 2 FOR alice.s_dept; Synonym created. Создание синонима: примеры • Создание коротко имен для представления DEPT_SUM_VU. SQL> CREATE SYNONYM d_sum 2 FOR dept_sum_vu; Synonym created. • Синонимы PUBLIC создаются и удаляются только администратором базы данных. SQL> CREATE PUBLIC SYNONYM d_dept 2 FOR alice.s_dept; Synonym created. • Удаление синонима. SQL> DROP SYNONYM d_dept; Synonym dropped. Заключение Позволяет администратору базы данных зарегистрировать пользователя GRANT Позволяет пользователю предоставлять другим пользователям привилегии на доступ к своим объектам GRANTE ROLE Позволяет администратору базы создавать набор привилегий. ALTER USER Позволяет пользователям менять свои пароли. REVOKE Отменяет привилегии на объект, предоставленные пользователям. CREATE Позволяет присваивать альтернативные SYNONYM имена объектов. CREATE USER