Пример
SELECT * FROM USER_ROLE_PRIVS WHERE USERNAME =USER
Просмотр всех системных привилегий заданного пользователя user.
Для каждого из объектов базы данных можно назначать привилегии, которые необходимы заданным пользователям.
Синтаксис
Предоставление объектных привилегий:
GRANT тип привилегий ON объект TO пользователь WITH GRANT OPTION;
Тип привилегий может быть на выборку, на вставку, на обновление данных, на запуск процедуры или функции SELECT, INSERT, UPDATE, EXCEUTE.
GRANT OPTION — возможность передавать данные права.
Примеры
Права на выбор данных из таблицы t2:
GRANT SELECT ON USER2.t2 TO USER1;
На оператор UPDATE для USER1 для таблицы USER2.t2:
GRANT UPDATE ON USER2.t2 TO USER;
На INSERT с возможностью пользователя передавать другим эту привилегию для таблицы USER2.t2:
GRANT INSERT, UPDATE, SELECT ON USER2.t2 TO USER1 WITH GRANT OPTION;
Системные права позволяют пользователю выполнить конкретное действие в базе данных либо действие с любым объектом схемы конкретного типа.
Перечень системных привилегий:
CREATE TABLESPACE — права на создание табличного пространства.
CREATE USER — права на создание пользователя.
DROP USER — права на удаление пользователя.
ALTER USER — права на изменение пользователя.
GRANT ANY PRIVILEGE — права на назначение любой привилегии.
INSERT ANY TABLE — права на вставку в любую таблицу.
DELETE ANY TABLE — права на удаление.
CREATE PROCEDURE — права на создание в схеме пользователя хранимой процедуры, функции или пакета.
CREATE VIEW — права на создание в схеме пользователя представления.
CREATE SEQUENCE — права на создание в схеме пользователя последовательности.
CREATE TABLE — права на создание пользователя таблицы.
CREATE SESSION — права на создание соединения с базой данных.
CREATE DATABASE LINK — права на создание в схеме пользователя таблицы.
Пример
GRANT CREATE TABLE TO USER1; — права на создание таблицы USER1
GRANT CREATE SEQUENCE TO USER1; — права на создание последовательности USER1
GRANT CREATE VIEW TO USER1; — права на создание представления USER1
GRANT CREATE USER TO USER1; — права на создание пользователя USER1
Роль включает набор прав и системных привилегий. Роль может быть назначена указанным пользователям.
Создание ролей: CREATE ROLE NEWROLE;
Предоставление привилегий роли: GRANT CREATE TABLE, CREATE PROCEDURE, CREATE TRIGGER, CREATE VIEW, CREATE SEQUENCE.
TO NEWROLE;
Связь роли с пользователем: GRANT NEWROLE TO USER1;
Для чего все же нужны роли?
Роль позволяет предварительно задать наборы прав для определенных групп бизнес-пользователей. После чего назначать этим пользователям не права по отдельности, а готовые бизнес-роли.
Можно ли создать схему без создания пользователя?
Нельзя, но можно создать пользователя без прав соединения, в этом случае будет создана схема.
Контрольные вопросы и задания для самостоятельного выполнения
1. Объясните отличия системных привилегий от объектных привилегий.
2. Напишите команду, которая бы предоставила пользователю USER2 права на создание таблиц и представлений.
3. Создайте новую роль с правами на создание последовательности (SEQUENCE) и создание таблиц, назначьте эту роль пользователю USER2.
4. Дайте права на чтение из таблицы USER1.t1 пользователю t2.
Шаг 93. Системные представления. Сведения об объектах схемы
В ORACLE существуют специальные таблицы и представления, из которых можно получить сведения о структуре базы данных и структуре объектов базы данных. Эти сущности являются системными представлениями и системными таблицами словаря данных.
Основные системные таблицы и представления, доступные пользователю без специальных разрешений:
ALL_OBJECTS — сведения об основных объектах, доступных этому пользователю; это таблицы, представления, функции, процедуры, и это наиболее важное из всех системных представлений.
Системное представление ALL_OBJECTS содержит следующую значимую информацию:
Запрос к системному представлению ALL_OBJECTS:
ALL_SEQUENCES — сведения об описании последовательностей, доступных пользователю.
Содержит следующую важную информацию:
Запрос к системному представлению ALL_SEQUENCES:
Рисунок 222. Все последовательности SQ
ALL_SOURCE — исходный текст кода объектов, доступных пользователю. Это может быть текст функций, процедур, триггеров.
ALL_SOURCE содержит следующую важную информацию:
Читать дальше
Конец ознакомительного отрывка
Купить книгу