Привилегии – это права, назначаемые отдельным пользователям или ролям. Привилегии делятся на два основных вида:
Системные привилегии, которые дают пользователю или роли возможность выполнять определенные системные операции.
Объектные привилегии, которые дают пользователю или роли права доступа к отдельным объектам схемы.
Системные привилегии относятся к экземпляру Oracle в целом, например, есть привилегия для всех объектов одного типа. Объектные же привилегии связаны с конкретным объектом схемы внутри базы данных Oracle.
Системные привилегии. Перечислим все системные привилегии Oracle:
Таблица
Привилегия
Назначение
ANY
Дает привилегию на выполнение операции над объектами любой схемы. В отсутствие такого ключевого слова привилегия выдается только на объекты в рамках схемы пользователя. По умолчанию ключевое слово ANY дает пользователю привилегию на все объекты всех схем, включая SYS. Для того чтобы запретить привилегии ANY на доступ к схеме SYS, можно установить параметр инициализации 07_DISTIONARY_ACCESSIBILITY в FALSE.
ALTER
Дает привилегию на изменение объекта некоторого типа
CREATE
Дает привилегию на создание объекта данного типа
DROP
Дает привилегию на удаление объекта данного типа
EXECUTE
Дает привилегию на исполнение объекта данного типа или обращение к нему
SELECT ANY
Дает привилегию на доступ к объектам, применяется только с ключевым словом ANY, потому что пользователь всегда имеет возможность доступа к объектам собственной схемы.
Для примера ниже приведены некоторые из системных привилегий, существующих в ORACLE:
- CREATE SESSION (установить сеанс) – позволяет пользователю соединяться с сервером баз данных и устанавливать с ней сеанс связи;
- CREATE TABLE (создать таблицу) – позволяет пользователю создавать таблицы в своей собственной схеме;
- CREATE ANY TABLE (создать любую таблицу) – позволяет пользователю создавать таблицы в любой схеме базы данных;
- CREATE ANY TYPE (создать любой тип) – позволяет пользователю создавать типы и тела соответствующих типов в любой схеме базы данных;
- SELECT ANY TABLE (выбрать любую таблицу) – позволяет пользователю обращаться с запросами к любой таблице базы данных;
- EXECUTE ANY PROCEDURE (выполнить любую процедуру) – позволяет пользователю выполнять любую хранимую процедуру, хранимую функцию или модульный компонент базы данных.
Каждая из представленных разновидностей привилегий является общей и может применяться со многими типами уникальных системных привилегий, описанных далее.
Таблица
Объект
привилегий
Описание привилегий
Уникальные
привилегии
Общие
привилегии
AUDIT
разрешает функции аудита
AUDIT SYSTEM
ANY
CLUSTER
предоставляет возможность работы с кластерами.
нет
CREATE [ANY], ALTER ANY, DROP ANY
CONTEXT
предоставляет возможность работы с контекстами.
нет
CREATE ANY,
DROP ANY
DATABASE
предоставляет возможность выполнения команды ALTER DATABASE.
нет
ALTER
DATABASE LINKS
предоставляет возможность работы со связями БД
CREATE PUBLIC, DROP PUBLIC
CREATE
DEBUG
предоставляет возможность работы с отладчиком.
DEBUG CONNECT, SESSION
DIMENSION
предоставляет возможность работы с измерениями
нет
CREATE [ANY], ALTER ANY, DROP ANY
DIRECTORY
предоставляет возможность работы с каталогами.
нет
CREATE ANY, DROP ANY
INDEX
предоставляет возможность работы с индексами
QUERY REWRITE
CREATE ANY, ALTER ANY, DROP ANY
INDEXTYPE
предоставляет возможность работы с объектами типа INDEXTYPE,
нет
CREATE [ANY], ALTER ANY, DROP ANY, EXECUTE ANY
LIBRARY
предоставляет возможность работы с библиотеками.
нет
CREATE [ANY], DROP ANY
MATERIALIZED VIEW
предоставляет возможность работы с материализованными представлениями
ON COMMIT REFRESH
CREATE [ANY], ALTER ANY, DROP ANY
OPERATOR
предоставляет возможность работы с определяемыми пользователем операторами
нет
CREATE [ANY], DROP, EXECUTE
OUTLINE
предоставляет возможность работы с хранимыми планами выполнения
SELECT ANY
CREATE ANY, ALTER ANY, DROP ANY
PROCEDURE
предоставляет возможность работы с процедурами
нет
CREATE [ANY], ALTER ANY, DROP ANY, EXECUTE ANY
PROFILE
предоставляет возможность работы с профилями
нет
CREATE, ALTER, DROP
RESOURCE COST
предоставляет возможность присваивания стоимостей ресурсам
нет
ALTER
ROLE
предоставляет возможность работы с ролями
GRANT ANY
CREATE, ALTER ANY, DROP ANY
ROLLBACK SEGMENT
предоставляет возможность работы с сегментами отката
нет
CREATE, ALTER, DROP
SEQUENCE
предоставляет возможность работы с последовательностями.
нет
CREATE [ANY], ALTER ANY, DROP ANY, SELECT ANY
SESSION
предоставляет возможность работы с сеансами
ALTER RESOURCE COST, RESTRICTED SESSION
CREATE, ALTER
SYNONYM
предоставляет возможность работы с синонимами
нет
CREATE [ANY] [PUBLIC], DROP ANY, DROP PUBLIC
SYSTEM
предоставляет возможность изменения параметров системы
CREATE [ANY], CREATE
ALTER ANY, DELETE ANY, DROP ANY, SELECT ANY
TABLESPACES
предоставляет возможность работы с табличными пространствами
MANAGE, UNLIMITED TABLESPACE
CREATE, ALTER, DROP
TYPES
предоставляет возможность работы с определяемыми пользователем типами
UNDER ANY
CREATE [ANY], ALTER ANY, DROP ANY, EXECUTE ANY
USER
предоставляет возможность работы с пользователями базы данных
BECOME
CREATE, ALTER, DROP
VIEWS
предоставляет возможность работы с представлениями
UNDER ANY
CREATE [ANY], DROP
Особые системные привилегии. Существуют также системные привилегии, предназначенные для предоставления пользователю возможности выполнения всего набора операций. Это особые привилегии, поскольку одна привилегия предоставляет пользователю набор базовых полномочий.
Таблица
Привилегия
Назначение
Полномочия
SYSDBA
дает пользователю все права, необходимые для запуска и остановки базы данных Oracle
ALTER DATABASE
CREATE DATABASE
ARCHIVELOG, RECOVERY
CREATE SPFILE
SYSOPER
предоставляет пользователю чуть более ограниченный набор прав, предназначенный для оператора системы
ALTER DATABASE OPEN | MOUNT | BACKUP
ARCHIVELOG, RECOVERY
CREATE SPFILE
Привилегии доступа к объектам схемы. Существует несколько разновидностей привилегий доступа к объектам схемы. Они могут применяться к различным типам объектов схемы.
Общие привилегии доступа к объектам схемы приведены в таблице
Таблица
привилегия
назначение
ALTER
изменяет определение объекта
DEBUG
обращается к PL/SQL_коду или информации о командах SQL, которые обращаются к объекту напрямую через отладчик
DELETE
удаляет строки из объекта
EXECUTE
компилирует или исполняет процедуру или функцию объекта, или же обращается к программному объекту, объявленному в объекте
FLASHBACK
выполняет ретроспективный запрос к объекту
INSERT
добавляет в объект новые строки
REFERENCES
создает ограничение (constraint), ссылающееся на объект
SELECT
запрашивает объект
UNDER
создает дочерний объект ниже уровня объекта
UPDATE
изменяет существующие данные объекта
Объекты схемы и их уникальные привилегии. В разделе приведены все типы объектов схемы, при этом для каждого из них указаны общие и уникальные разновидности привилегий.
Таблица
Объект схемы
назначение
Уникальные привилегии
Системные (общие) привилегии
Каталоги
предоставляет привилегии на выполнение операций над каталогами
READ, WRITE
Внешние таблицы
предоставляет привилегии на выполнение операций над внешними таблицами
ALTER, SELECT
Библиотеки
предоставляет привилегии на выполнение операций над библиотеками
EXECUTE
Материализованные представления
предварительно агрегированные сводные данные, участвующие в операциях бизнес-интеллекта
DELETE, FLASHBACK,INSERT, SELECT, UPDATE
Операторы
предоставляет привилегии на выполнение операций над операторами
EXECUTE
Процедуры, функции и пакеты
предоставляет привилегии на выполнение операций над тремя типами программных единиц: процедурами, функциями и пакетами
DEBUG, EXECUTE
Последовательности
предоставляет привилегии на выполнение операций над последовательностями
ALTER, SELECT
Таблицы
предоставляет привилегии на выполнение операций над таблицами
предоставляет привилегии на выполнение операций над пользовательскими типами
DEBUG, EXECUTE, UNDER
Представления
Предоставляет привилегии на выполнение операций над представлениями
DEBUG, DELETE, FLASHBACK, INSERT, REFERENCES,
SELECT, UNDER
Привилегии и пользователи. Для назначения привилегий пользователю или роли применяется команда GRANT. Команда REVOKE позволяет лишить пользователя или роль привилегии.
Общие ключевые слова и инструкции. Ключевые слова и инструкции, которые могут применяться как в команде GRANT, так и в REVOKE:
- ALL PRIVILEGES – предоставляет или отбирает все системные привилегии, за исключением SELECT ANY DICTIONARY. Для объектов предоставляет все привилегии, имеющиеся для данного объекта, ключевое слово PRIVILEGES является необязательным.
- получатель – один или несколько пользователей, одна или несколько ролей или ключевое слово PUBLIC, которое предоставляет или отбирает привилегии у всех пользователей базы данных. Если указывается несколько пол у чателей, их следует разделить запятыми.
- имя_столбца – один или несколько столбцов, для которых предоставляется или отбирается привилегия доступа к объектам INSERT, REFERENCES или UPDATE. Если имя столбца не указано, то привилегия предоставляется на все столбцы таблицы или представления.
- схема.объект – указывает имя объекта, на который выдается или отбирается привилегия. Если схема не задана, то сервер Oracle считает, что объект находится в собственной схеме пользователя.
- DIRECTORY имя_каталога – указывает имя каталога, на который выдается или отбирается привилегия.
Инструкция GRANT предоставляет пользователю или роли привилегии или роли. Для того чтобы предоставить привилегию, пользователь должен предварительно получить привилегию или роль с указанием WITH ADMIN OPTION. Также можно предоставлять привилегии, если есть привилегия GRANT ANY PRIVILEGE (для системных привилегий), GRANT ANY ROLE (для ролей), GRANT OPTION (для объектов схемы) или вы являетесь владельцем объекта. Системные привилегии и привилегии доступа к объектам схемы не могут быть предоставлены в одной команде GRANT.
1. Для предоставления системных привилегий или ролей:
GRANT { системная_привилегия | роль | ALL PRIVILEGES} TO получатель
[IDENTIFIED BY пароль ] [WITH ADMIN OPTION];
2. Для предоставления привилегий доступа к объектам схемы:
GRANT { объектная_привилегия | ALL [PRIVILEGES]}
[ имя_столбца [, имя_столбца …]]
ON { схeма.объект | DIRECTORY имя_каталога |
JAVA [SOURCE | RESOURCE] [ схема. ] объект }
TO получатель [WITH GRANT OPTION] [WITH HIERARCHY OPTION];
Определение ключевых слов приведено в таблице
Таблица
Ключевое слово
Назначение
IDENTIFIED BY
Может применяться для идентификации существующего пользователя по паролю или для создания нового пользователя с указанным паролем.
ALL PRIVILEGES
Предоставляет пользователю или роли все привилегии, за исключением SELECT ANY DICTIONARY
WITH ADMIN OPTION
Позволяет пользователю выдавать или отбирать системную привилегию или роль, а также изменять и удалять роль
WITH GRANT OPTION
Позволяет получателю получить привилегии на все дочерние объекты указанного объекта схемы
SOURCE | RESOURCE
Разрешает доступ к исходным текстам Java или Java-ресурсу
WITH HIERARCHY OPTION
Позволяет пользователю получить привилегии на все дочерние объекты указанного в инструкции объекта схемы.
Инструкция REVOKE аннулирует привилегии, ранее выданные пользователю или роли. Эта команда может аннулировать только те привилегии, которые были ранее выданы командой GRANT. Если отзывается роль у клиента, который использует ее в текущий момент, то роль остается, но уже не будет доступна клиенту после того, как он перестанет ей пользоваться.
Если несколько обладателей привилегии выдали ее пользователю, то для того чтобы привилегия стала недоступна пользователю, она должна быть аннулирована всеми выдавшими.
1. Для изъятия системных привилегий или ролей:
REVOKE {системная_привилегия | роль | ALL PRIVILEGES} FROM получатель;
2. Для изъятия привилегий доступа к объектам:
REVOKE { объектная_привилегия | ALL [PRIVILEGES]}
[ имя_столбца [, имя_столбца...]]
ON { схема.объект | DIRECTORY имя_каталога |
JAVA [SOURCE | RESOURCE] [ схема. ] объект }
FROM получатель [CASCADE CONSTRAINTS] [FORCE];
Определение ключевых слов приведено в таблице
Таблица
Ключевое слово
Назначение
ALL PRIVILEGES
Аннулирует все существующие системные привилегии для пользователя или роли
JAVA SOURCE | RESOURCE
Аннулирует доступ к исходным текстам Java и к Java-ресурсу
CASCADE CONSTRAINTS
Применяется только при отзыве привилегии REFERENCES или привилегий доступа к объектам ALL. Удаляет все ограничения, которые пользователь, лишаемый привилегий, определил для объекта
FORCE
Применяется при отзыве привилегии доступа к объектам EXECUTE для объектов пользовательских типов, имеющих зависимости от таблиц или типов. Приводит к тому, что все зависимые объекты помечаются как INVALID, запрещает доступ к данным зависимых таблиц, помечает все зависимые функциональные индексы как UNUSABLE.
Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет
studopedia.su - Студопедия (2013 - 2025) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав!Последнее добавление