Предоставленный оракул, что это такое

Обновлено: 02.07.2024

Как обычно, начните с подключения к серверу, на котором размещен Oracle, а затем подключитесь к самому Oracle в качестве системной учетной записи.

Учетная запись SYSTEM — одна из нескольких предопределенных административных учетных записей, автоматически создаваемых при установке Oracle. SYSTEM может выполнять большинство административных задач, но нас особенно интересует задача управления учетными записями.

Создание пользователя

После подключения как SYSTEM просто введите команду CREATE USER, чтобы создать новую учетную запись.

Здесь мы просто создаем учетную запись books_admin, которая ИДЕНТИФИЦИРОВАНА или аутентифицирована с помощью указанного пароля.

Заявление о гранте

Создав новую учетную запись books_admin, мы можем приступить к добавлению привилегий к учетной записи с помощью инструкции GRANT. GRANT — это очень мощная инструкция со многими возможными параметрами, но основная функциональность заключается в управлении привилегиями как пользователей, так и ролей во всей базе данных.

Предоставление ролей

Как правило, сначала нужно назначить права пользователю, привязав учетную запись к различным ролям, начиная с роли CONNECT:

В некоторых случаях, чтобы создать более мощного пользователя, вы также можете рассмотреть возможность добавления роли RESOURCE (позволяющей пользователю создавать именованные типы для пользовательских схем) или даже роли DBA, которая позволяет пользователю не только создавать пользовательские именованные типы но также изменить и уничтожить их.

Назначение прав

Далее вам нужно убедиться, что у пользователя есть права на фактическое подключение к базе данных и создание сеанса с помощью GRANT CREATE SESSION . Мы также объединим это со всеми привилегиями, используя GRANT ANY PRIVILEGE .

Нам также необходимо убедиться, что у нашего нового пользователя есть дисковое пространство, выделенное в системе для фактического создания или изменения таблиц и данных, поэтому мы предоставим GRANT TABLESPACE следующим образом:

Права доступа к таблице

Хотя это обычно не требуется в более новых версиях Oracle, в некоторых старых установках может потребоваться вручную указать права доступа, которые новый пользователь имеет к определенной схеме и таблицам базы данных.

Например, если мы хотим, чтобы наш пользователь books_admin имел возможность выполнять функции SELECT , UPDATE , INSERT и DELETE для таблицы books, мы можем выполнить следующую инструкцию GRANT:

Это гарантирует, что books_admin сможет выполнять четыре основных оператора для таблицы books, которая является частью схемы схемы.

Используйте оператор GRANT, чтобы предоставить привилегии определенному пользователю или роли или всем пользователям для выполнения действий над объектами базы данных. Вы также можете использовать оператор GRANT, чтобы предоставить роль пользователю, PUBLIC или другой роли.

  • Удалить данные из определенной таблицы.
  • Вставка данных в определенную таблицу.
  • Создайте ссылку внешнего ключа на именованную таблицу или на подмножество столбцов из таблицы.
  • Выберите данные из таблицы, представления или подмножества столбцов в таблице.
  • Создайте триггер для таблицы.
  • Обновить данные в таблице или в подмножестве столбцов в таблице.
  • Запустить указанную функцию или процедуру.
  • Используйте генератор последовательности или пользовательский тип.

Перед выполнением инструкции GRANT убедитесь, что для свойства derby.database.sqlAuthorization установлено значение true . Свойство derby.database.sqlAuthorization включает режим авторизации SQL.

Вы можете предоставить права доступа к объекту, если вы являетесь владельцем объекта или владельцем базы данных. Дополнительные сведения см. в инструкции CREATE для объекта базы данных, которому вы хотите предоставить привилегии.

Синтаксис, который вы используете для оператора GRANT, зависит от того, предоставляете ли вы привилегии объекту схемы или назначаете роль.

Дополнительную информацию об использовании инструкции GRANT см. в разделе "Использование стандартной авторизации SQL" в Руководстве разработчика по базе данных Java.

Синтаксис таблиц

Синтаксис подпрограмм

Синтаксис для генераторов последовательности

Для использования генератора последовательностей у вас должна быть привилегия USAGE. Эта привилегия может быть предоставлена ​​пользователям и ролям. Дополнительную информацию см. в операторе CREATE SEQUENCE.

Имя последовательности состоит из необязательного имя_схемы и идентификатора SQL92. Если имя_схемы не указано, текущая схема является схемой по умолчанию. Если указано полное имя последовательности, имя схемы не может начинаться с SYS.

Синтаксис пользовательских типов

Чтобы использовать определяемый пользователем тип, у вас должна быть привилегия USAGE. Эта привилегия может быть предоставлена ​​пользователям и ролям. Дополнительную информацию см. в операторе CREATE TYPE.

Имя типа состоит из необязательного имя_схемы и идентификатора SQL92. Если имя_схемы не указано, текущая схема является схемой по умолчанию. Если указано полное имя типа, имя схемы не может начинаться с SYS.

Синтаксис ролей

Прежде чем вы сможете предоставить роль пользователю или другой роли, вы должны создать роль с помощью инструкции CREATE ROLE. Только владелец базы данных может предоставить роль.

Роль A содержит другую роль B, если роль B предоставлена ​​роли A, или содержится в роли C, предоставленной роли A. Привилегии, предоставленные содержащейся роли, наследуются содержащими ролями. . Таким образом, набор привилегий, определяемый ролью A, представляет собой объединение привилегий, предоставленных роли A, и привилегий, предоставленных любым ролям, содержащимся в роли A.

типы привилегий

список привилегий

привилегия таблицы

список столбцов

Используйте тип привилегий ALL PRIVILEGES, чтобы предоставить все привилегии пользователю или роли для указанной таблицы. Вы также можете предоставить одну или несколько привилегий для таблиц, указав список привилегий.

Используйте тип привилегии DELETE, чтобы предоставить разрешение на удаление строк из указанной таблицы.

Используйте тип привилегии INSERT, чтобы предоставить разрешение на вставку строк в указанную таблицу.

Используйте тип привилегии REFERENCES, чтобы предоставить разрешение на создание ссылки внешнего ключа на указанную таблицу. Если список столбцов указан с привилегией REFERENCES, разрешение действительно только для ссылки внешнего ключа на указанные столбцы.

Используйте тип привилегии SELECT, чтобы предоставить разрешение на выполнение инструкций SELECT или SelectExpressions в таблице или представлении. Если список столбцов указан с привилегией SELECT, разрешение действительно только для этих столбцов. Если список столбцов не указан, привилегия действительна для всех столбцов в таблице.

Для запросов, которые не выбирают определенный столбец из таблиц, участвующих в операторе SELECT или SelectExpression (например, запросы, использующие COUNT(*) ), у пользователя должен быть хотя бы один столбец. привилегия SELECT на уровне таблицы или привилегия SELECT на уровне таблицы.

Используйте тип привилегии TRIGGER, чтобы предоставить разрешение на создание триггера для указанной таблицы.

Используйте тип привилегии UPDATE, чтобы предоставить разрешение на использование оператора UPDATE в указанной таблице. Если указан список столбцов, разрешение применяется только к указанным столбцам. Чтобы обновить строку с помощью оператора, включающего предложение WHERE, у вас должна быть привилегия SELECT для столбцов в строке, которую вы хотите обновить.

получатели

Вы можете предоставлять привилегии или роли определенным пользователям или ролям или всем пользователям. Используйте ключевое слово PUBLIC, чтобы указать всех пользователей. Если указано значение PUBLIC, привилегии или роли распространяются на всех текущих и будущих пользователей. Привилегии, предоставленные PUBLIC и отдельным пользователям или ролям, являются независимыми привилегиями. Например, привилегия SELECT для таблицы t предоставляется как PUBLIC, так и авторизационному идентификатору harry. Позже привилегия SELECT отменяется для идентификатора авторизации harry , но Гарри может получить доступ к таблице t через привилегию PUBLIC.

Либо владелец объекта, либо владелец базы данных может предоставлять привилегии пользователю или роли. Только владелец базы данных может предоставить роль пользователю или другой роли.

обозначение-подпрограммы

Примеры

Чтобы предоставить привилегию SELECT для таблицы t идентификаторам авторизации maria и harry , используйте следующий синтаксис:

Чтобы предоставить привилегии UPDATE и TRIGGER для таблицы t идентификаторам авторизации anita и zhi , используйте следующий синтаксис:

Чтобы предоставить привилегию EXECUTE для процедуры p авторизационному идентификатору george , используйте следующий синтаксис:

Чтобы назначить роль Purchases_reader_role идентификаторам авторизации george и maria , используйте следующий синтаксис:

Чтобы предоставить привилегию SELECT для таблицы t роли Purchases_reader_role , используйте следующий синтаксис:

Чтобы предоставить привилегию USAGE генератора последовательности order_id роли sales_role , используйте следующий синтаксис:

Чтобы предоставить привилегию USAGE для определяемого пользователем типа цены роли Finance_role , используйте следующий синтаксис:

Используйте оператор GRANT для предоставления:

Роли для пользователей, ролей и программных единиц. Предоставленные роли могут быть либо определенными пользователем (локальными или внешними), либо предопределенными. Список предопределенных ролей см. в Oracle Database Security Guide .

Глобальные роли (созданные с помощью IDENTIFIED GLOBALLY ) предоставляются через корпоративные роли и не могут быть предоставлены с помощью инструкции GRANT.

Примечания по авторизации пользователей базы данных

Вы можете авторизовать пользователей базы данных с помощью средств, отличных от базы данных и оператора GRANT.

Многие привилегии базы данных Oracle предоставляются с помощью поставляемых пакетов PL/SQL и Java. Информацию об этих привилегиях см. в документации по соответствующему пакету.

В некоторых операционных системах есть средства, позволяющие назначать роли пользователям базы данных Oracle с помощью параметра инициализации OS_ROLES .Если вы решите назначать роли пользователям с помощью средств операционной системы, вы также не сможете назначать роли пользователям с помощью оператора GRANT, хотя вы можете использовать оператор GRANT для предоставления системных привилегий пользователям и системных привилегий и ролей другим ролям.

Примечание к Oracle Automatic Storage Management

Пользователь, прошедший аутентификацию AS SYSASM, может использовать этот оператор для предоставления системных привилегий SYSASM , SYSOPER и SYSDBA пользователю в файле паролей Oracle ASM текущего узла.

Примечание относительно редактируемых объектов

Операция GRANT для предоставления объектных привилегий для редактируемого объекта актуализирует объект в текущей редакции. Дополнительную информацию о редакциях и редактируемых объектах см. в Руководстве по разработке баз данных Oracle.

CREATE USER и CREATE ROLE для определения локальных, глобальных и внешних привилегий

Руководство по безопасности базы данных Oracle для получения информации о других методах авторизации и информации о привилегиях

REVOKE для получения информации об отзыве грантов

Чтобы предоставить системную привилегию, должно быть выполнено одно из следующих условий:

Вы должны иметь системную привилегию GRANT ANY PRIVILEGE. В этом случае, если вы предоставляете системную привилегию роли, то пользователь, которому была предоставлена ​​роль, не имеет этой привилегии, если эта роль не включена в сеансе пользователя.

Вам должны быть предоставлены системные привилегии с ОПЦИЕЙ АДМИНИСТРАТОРА. В этом случае, если вы предоставляете системную привилегию роли, то пользователь, которому была предоставлена ​​роль, имеет эту привилегию независимо от того, включена ли эта роль в сеансе пользователя.

Чтобы предоставить роль пользователю или другой роли , вам должна быть предоставлена ​​роль непосредственно с помощью ADMIN OPTION , или вам должна быть предоставлена ​​системная привилегия GRANT ANY ROLE, или вы должны создать роль.

Чтобы присвоить роль программному модулю в вашей собственной схеме, вы должны получить эту роль напрямую с помощью ОПЦИИ АДМИНИСТРАТОРА или ОПЦИИ ДЕЛЕГАТА, или вам должна быть предоставлена ​​системная привилегия GRANT ANY ROLE, или вы должны создали роль.

Чтобы предоставить роль программному блоку в схеме другого пользователя, вы должны быть пользователем SYS, а роль должна быть создана владельцем схемы или предоставлена ​​непосредственно владельцу схемы.

Чтобы предоставить объектную привилегию пользователю , указав предложение ON USER в on_object_clause , вы должны быть пользователем, которому предоставлена ​​привилегия, или вы должны получить объектную привилегию для этого пользователя с помощью WITH GRANT OPTION , либо вам должна быть предоставлена ​​системная привилегия GRANT ANY OBJECT PRIVILEGE. Если вы можете предоставить объектную привилегию пользователю только потому, что у вас есть GRANT ANY OBJECT PRIVILEGE , то в столбце GRANTOR представлений *_TAB_PRIVS отображается пользователь, которому предоставлена ​​привилегия, а не пользователь, выпустивший оператор GRANT.

Чтобы предоставить объектную привилегию для всех других типов объектов, вы должны владеть объектом, либо владелец объекта должен предоставить вам объектные привилегии с опцией WITH GRANT OPTION, либо вам должна быть предоставлена ​​GRANT ANY OBJECT ПРИВИЛЕГИЯ системная привилегия. Если у вас есть GRANT ANY OBJECT PRIVILEGE , вы можете предоставить объектную привилегию только в том случае, если владелец объекта мог предоставить такую ​​же объектную привилегию. В этом случае в столбце GRANTOR представлений *_TAB_PRIVS отображается владелец объекта, а не пользователь, выполнивший оператор GRANT.

Чтобы указать предложение CONTAINER, необходимо подключиться к многопользовательской контейнерной базе данных (CDB). Чтобы указать CONTAINER = ALL , текущий контейнер должен быть корневым.

Вывод: в этом руководстве вы узнаете, как использовать оператор Oracle GRANT для предоставления привилегий определенному пользователю.

Обзор привилегий Oracle

После создания пользователя необходимо решить, какие действия он может выполнять в базе данных Oracle.

В руководстве CREATE USER мы использовали оператор GRANT, чтобы предоставить пользователю john системную привилегию CREATE SESSION, позволяющую пользователю входить в базу данных Oracle.

Что такое привилегия?

По определению, привилегия — это право на выполнение инструкции SQL или право на доступ к объекту другого пользователя.

Oracle определяет два основных типа привилегий: системные привилегии и объектные привилегии

Системные привилегии

Системные привилегии определяют, что пользователь может делать в базе данных. В основном они позволяют пользователю добавлять или изменять объекты схемы в базе данных, например создавать таблицы, создавать представления и удалять табличные пространства.

  • СОЗДАТЬ СЕАНС
  • СОЗДАТЬ ТАБЛИЦУ
  • СОЗДАТЬ ПРОСМОТР
  • СОЗДАТЬ ПРОЦЕДУРУ
  • SYSDBA
  • СИСОПЕР

Привилегии объекта

Привилегии объекта определяют, как пользователь может получить доступ к данным в базе данных. Привилегии объекта применяются к строкам в таблицах или представлениях.

Вот некоторые общие объектные привилегии:

Чтобы предоставить пользователю одну или несколько привилегий, используйте оператор GRANT

Введение в оператор Oracle GRANT

Команда GRANT назначает одну или несколько привилегий конкретному пользователю. Ниже показан основной синтаксис оператора GRANT:

Сначала укажите системные или объектные привилегии, которые вы хотите назначить пользователю, после ключевого слова GRANT. Если вы назначаете более одной привилегии, вы используете список привилегий, разделенных запятыми.

Во-вторых, укажите пользователя, который получает привилегии, после ключевого слова TO.

В-третьих, при желании используйте ВАРИАНТ С АДМИНИСТРАТОРОМ, если вы хотите, чтобы пользователь мог выполнять следующие действия:

  • Предоставить/отозвать привилегию другому пользователю/у другого пользователя.
  • Измените привилегию, чтобы изменить авторизацию, необходимую для доступа к ней.
  • Отменить привилегию.

Пользователь, который получает привилегии с помощью оператора GRANT, также известен как правообладатель.

Обратите внимание, что оператор GRANT также работает с ролями, которые мы рассмотрим в следующем руководстве.

Примеры инструкции Oracle GRANT

Давайте попрактикуемся с оператором GRANT, чтобы лучше понять его.

1) Используйте Oracle GRANT для предоставления системных и объектных привилегий пользовательскому примеру

В этом руководстве мы запустим два сеанса SQL*Plus, один для пользователя ot, который предоставит привилегии, а другой для пользователя john .

Сначала запустите SQL*Plus и войдите в базу данных Oracle под именем пользователя john . Обратите внимание, что мы назначили пользователю john системную привилегию CREATE SESSION, поэтому он должен иметь возможность войти в систему.

Если вы не следуете руководству CREATE USER, вы можете создать пользователя john и предоставить системную привилегию CREATE SESSION, используя следующие операторы:

Во-вторых, используйте пользователя john для входа в базу данных Oracle и создания новой таблицы:

Oracle выдал следующую ошибку:

Чтобы разрешить пользователю john создавать таблицу, необходимо предоставить пользователю системную привилегию CREATE TABLE, как показано в следующем заявлении:

Теперь пользователь john может создать новую таблицу:

Следующий оператор показывает привилегии текущего пользователя:

Вот привилегии пользователя john :

В-третьих, используйте пользователя john для вставки новой строки в таблицу t1:

Oracle выдал следующую ошибку:

Это связано с тем, что пользователь john имеет нулевую квоту в табличном пространстве USERS.

Чтобы исправить это, вы используете команду ALTER USER для изменения квоты пользователя john в табличном пространстве USERS:

Теперь пользователь john должен иметь возможность вставить строку в таблицу t1:

А также запрашивать данные из таблицы t1:

Вот результат:

2) Используйте Oracle GRANT для назначения привилегий, пример WITH ADMIN OPTION

Сначала создайте нового пользователя с именем jack и предоставьте ему CREATE SESSION, чтобы он мог войти в систему:

Во-вторых, предоставьте системную привилегию CREATE TABLE пользователю john , но на этот раз используйте ОПЦИЮ WITH ADMIN OPTION :

Теперь пользователь john может предоставить системную привилегию CREATE TABLE другому пользователю, например Джек .

В-третьих, войдите как john и предоставьте системную привилегию CREATE TABLE пользователю jack :

Наконец, войдите как jack и создайте новую таблицу:

Пользователь jack может создать таблицу.

3) Использование Oracle GRANT для назначения привилегий с ЛЮБОЙ опцией, например

Некоторые системные привилегии имеют ключевое слово ANY, которое позволяет пользователю выполнять соответствующее действие над любыми объектами в базе данных.

Например, SELECT ANY TABLE позволяет пользователю выбирать данные из любой таблицы в любой схеме базы данных.

Рассмотрите следующий пример.

Сначала войдите в систему как jack и выберите данные из таблицы t1 в схеме john's:

Oracle выдал следующую ошибку:

Во-вторых, войдите как ot и предоставьте системную привилегию SELECT ANY TABLE пользователю jack :

В-третьих, из сеанса john выполните оператор SELECT:

Вот результат:

Теперь пользователь jack может выбирать данные из любой таблицы любой схемы в базе данных Oracle.

4) Использование Oracle GRANT для предоставления объектных привилегий пользователю пример

Сначала запустите первый сеанс SQL*Plus, войдите в систему как пользователь ot и создайте новую таблицу с именем t2 :

Во-вторых, вставьте несколько значений в таблицу t2:

В-третьих, запустите второй сеанс SQL*Plus, войдите в систему как john и запросите данные из таблицы ot.t2:

Oracle выдал следующую ошибку:

Это связано с тем, что пользователь john не имеет права запрашивать данные из таблицы ot.t2.

В-четвертых, вернитесь к первому сеансу SQL*Plus и предоставьте john привилегию SELECT объекта на ot.t2:

В-пятых, перейдите во второй сеанс SQL*Plus и запросите данные из таблицы ot.t2:

Теперь Джон должен иметь возможность запрашивать данные из таблицы ot.t2.

В-шестых, попробуйте вставить несколько строк в таблицу ot.t2:

Oracle выдал следующую ошибку:

Чтобы Джон мог вставлять и обновлять данные в файле ot.t2, вам нужно предоставить привилегию объекта INSERT и UPDATE для john :

Теперь Джон должен иметь возможность вставлять и обновлять данные в таблице ot.t2.

В этом руководстве вы узнали, как использовать оператор Oracle GRANT для назначения системных и объектных привилегий определенному пользователю.

В этом руководстве по Oracle объясняется, как предоставлять и отзывать привилегии в Oracle с синтаксисом и примерами.

Описание

Вы можете ПРЕДОСТАВЛЯТЬ и ОТМЕНЯТЬ привилегии для различных объектов базы данных в Oracle. Сначала мы рассмотрим, как предоставлять и отзывать привилегии для таблиц, а затем как предоставлять и отзывать привилегии для функций и процедур в Oracle.

Предоставить права доступа к таблице

Вы можете предоставлять пользователям различные права доступа к таблицам. Эти привилегии могут быть любой комбинацией SELECT, INSERT, UPDATE, DELETE, REFERENCES, ALTER, INDEX или ALL.

Синтаксис

Синтаксис предоставления привилегий для таблицы в Oracle:

Назначаемые привилегии. Это может быть любое из следующих значений:

Привилегия Описание
SELECT Возможность выполнения Операторы SELECT для таблицы.
INSERT Возможность выполнять операторы INSERT для таблицы.
UPDATE Возможность выполнять операторы UPDATE для таблицы.
DELETE Возможность выполнять операторы DELETE для таблицы.< /td>
ССЫЛКИ Возможность создания ограничения, ссылающегося на таблицу.
ALTER Возможность выполнения операторов ALTER TABLE для изменения определения таблицы.
INDEX Возможность создания индекса для таблицы с помощью команды create index оператор.
ALL Все привилегии для таблицы.

object Имя объекта базы данных, для которого вы предоставляете привилегии. В случае предоставления привилегий для таблицы это будет имя таблицы. user Имя пользователя, которому будут предоставлены эти привилегии.

Пример

Давайте рассмотрим несколько примеров предоставления прав доступа к таблицам в Oracle.

Например, если вы хотите предоставить привилегии SELECT, INSERT, UPDATE и DELETE для таблицы с именем suppliers пользователю с именем smithj, вы должны выполнить следующую команду. Оператор GRANT:

Вы также можете использовать ключевое слово ALL, чтобы указать, что вы хотите предоставить ВСЕ разрешения для пользователя с именем smithj. Например:

Если вы хотите предоставить всем пользователям только доступ SELECT к вашей таблице, вы можете предоставить привилегии ключевому слову public. Например:

Отозвать привилегии для таблицы

После того как вы предоставили привилегии, вам может потребоваться отозвать некоторые или все эти привилегии. Для этого вы можете запустить команду отзыва. Вы можете отозвать любую комбинацию SELECT, INSERT, UPDATE, DELETE, REFERENCES, ALTER, INDEX или ALL.

Синтаксис

Синтаксис отзыва привилегий для таблицы в Oracle:

Привилегии для отзыва. Это может быть любое из следующих значений:

Привилегия Описание
SELECT Возможность выполнения Операторы SELECT для таблицы.
INSERT Возможность выполнять операторы INSERT для таблицы.
UPDATE Возможность выполнять операторы UPDATE для таблицы.
DELETE Возможность выполнять операторы DELETE для таблицы.< /td>
ССЫЛКИ Возможность создания ограничения, ссылающегося на таблицу.
ALTER Возможность выполнения операторов ALTER TABLE для изменения определения таблицы.
INDEX Возможность создания индекса для таблицы с помощью команды create index оператор.
ALL Все привилегии для таблицы.

object Имя объекта базы данных, для которого вы отзываете привилегии. В случае отзыва привилегий для таблицы это будет имя таблицы. user Имя пользователя, у которого будут отозваны эти привилегии.

Пример

Давайте рассмотрим несколько примеров отзыва привилегий для таблиц в Oracle.

Например, если вы хотите отозвать привилегии DELETE для таблицы с именем suppliers у пользователя с именем anderson, вы должны выполнить следующую инструкцию REVOKE:

Если вы хотите отозвать ВСЕ привилегии для таблицы для пользователя с именем anderson, вы можете использовать ключевое слово ВСЕ следующим образом:

Если вы предоставили ВСЕ привилегии общественности (всем пользователям) в таблице suppliers и хотите отозвать эти привилегии, вы можете запустить следующую инструкцию REVOKE:

Предоставление прав доступа к функциям/процедурам

При работе с функциями и процедурами вы можете предоставить пользователям возможность ВЫПОЛНЯТЬ эти функции и процедуры.

Синтаксис

Синтаксис предоставления привилегий EXECUTE для функции/процедуры в Oracle:

EXECUTE Возможность компилировать функцию/процедуру. Возможность прямого выполнения функции/процедуры. объект Имя объекта базы данных, для которого вы предоставляете привилегии. В случае предоставления привилегий EXECUTE для функции или процедуры, это будет имя функции или имя процедуры. user Имя пользователя, которому будут предоставлены привилегии EXECUTE.

Пример

Давайте рассмотрим несколько примеров предоставления привилегий EXECUTE для функции или процедуры в Oracle.

Например, если у вас есть функция с именем Find_Value и вы хотите предоставить доступ EXECUTE пользователю с именем smithj, вы должны выполнить следующую инструкцию GRANT:

Если вы хотите предоставить ВСЕМ пользователям возможность ВЫПОЛНЯТЬ эту функцию, вы должны запустить следующую инструкцию GRANT:

Отозвать привилегии для функций/процедур

После того как вы предоставили привилегии EXECUTE для функции или процедуры, вам может потребоваться ОТЗЫВАТЬ эти привилегии у пользователя. Для этого вы можете выполнить команду REVOKE.

Синтаксис

Синтаксис отзыва привилегий для функции или процедуры в Oracle:

EXECUTE Возможность компилировать функцию/процедуру. Возможность прямого выполнения функции/процедуры. объект Имя объекта базы данных, для которого вы отзываете привилегии. В случае отзыва привилегий EXECUTE для функции или процедуры это будет имя функции или имя процедуры. user Имя пользователя, у которого будут отозваны привилегии EXECUTE.

Пример

Давайте рассмотрим несколько примеров отзыва привилегий EXECUTE для функции или процедуры в Oracle.

Если вы хотите отозвать привилегии EXECUTE для функции с именем Find_Value у пользователя с именем anderson, вы должны выполнить следующую инструкцию REVOKE:

Если вы предоставили привилегии EXECUTE всем пользователям (всем пользователям) в функции с именем Find_Value и хотите отозвать эти привилегии EXECUTE, вы можете выполнить следующую инструкцию REVOKE:

Читайте также: