русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

ИНСТРУКЦИЯ REVOKE И ПРАВО ПРЕДОСТАВЛЕНИЯ ПРИВИЛЕГИЙ


Дата добавления: 2013-12-24; просмотров: 857; Нарушение авторских прав


Когда вы даете кому-нибудь привилегии с правом последующего предоставления, а затем отменяете эти привилегии, то в большинстве СУБД автоматически отменяются все привилегии, которые являются производными от исходных. Рассмотрим еще раз цепочку привилегий: Владелец → SECRETARY → SOMEBODY. Если теперь Владелец отменит привилегии SECRETARY на представление ORDERS, то привилегии SOMEBODY; также будут автоматически отменены.

Ситуация становится более сложной, если привилегии предоставляются двумя или более пользователями, один из которых впоследствии отменяет привилегии. Рассмотрим пример (см. рисунок 35). Он представляет собой предыдущий пример в слегка измененном виде. Здесь SECRETARY получает привилегию SELECT с правом предоставления, как от Владельца, так и от ANYBODY, а затем дает привилегии SOMEBODY. На этот раз, когда Владелец отменяет привилегии SECRETARY, остаются привилегии, предоставленные ANYBODY. Привилегии SOMEBODY также остаются, поскольку они могут происходить от привилегий ANYBODY.

 

Рисунок 35 Отмена привилегий, предоставленных

двумя пользователями

 

Рассмотрим другой вариант этой цепочки привилегий, в котором изменен порядок событий (рисунок 36). Здесь SECRETARY получает привилегию с правом предоставления от Владельца, дает эту привилегию SOMEBODY и после этого получает привилегию с правом предоставления от ANYBODY. Когда на этот раз Владелец отменяет привилегии SECRETARY, результат будет другим и может отличаться на разных СУБД. Как и в случае, изображенном на рисунке 35, у SECRETARY останется привилегия SELECT на представление ORDERS, предоставленная ANYBODY. Но SOMEBODY автоматически потеряет привилегию SELECT. Произойдет это потому, что привилегия SOMEBODY явно происходит от привилегии, данной Владельцем и только что отмененной. Она не может быть производной от привилегии, предоставленной SECRETARY пользователем ANYBODY, так как эта привилегия отсутствовала в тот момент, когда SECRETARY давал привилегию SOMEBODY.



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

Рисунок 36 Отмена привилегий, предоставленных в другой последовательности

24. ПРОГРАММИРОВАНИЕ СЕРВЕРА БАЗ ДАННЫХORACLE ПОСРЕДСТВОМ PL/SQL

 

В своей исходной форме SQL не был полноценным языком программирования. Он задумывался и создавался как язык, предназначенный для выполнения операций над базами данных – создания их структуры, ввода и обновления данных – и особенно для выполнения запросов. SQL может использоваться как интерактивный командный язык: пользователь по очереди вводит инструкции SQL с клавиатуры, а СУБД их выполняет. В этом случае последовательность операций над базой данных определяется ее пользователем.

С появлением хранимых процедур и триггеров язык SQL обогатился рядом дополнительных базовых возможностей, обеспечиваемых практически всеми языками программирования, что позволило писать на “расширенном SQL” настоящие программы и процедуры. (Хранимые процедуры позволяют переносить часть прикладных функций, связанных с обработкой данных, в саму базу данных, триггеры служат для автоматического выполнения хранимых процедур при возникновении в базе данных определенных условий.)

Набор элементов, реализующих возможности процедурного языка, составляет язык хранимых процедур (SPL — Stored Procedure Language).

PL/SQL — процедурный язык программирования, встроенный в большинство продуктов ORACLE. С помощью PL/SQL можно создавать программы, в которых объединяются операторы PL/SQL, предназначенные для управления выполнением программ, и SQL-операторы, с помощью которых можно обращаться к базам данных и обрабатывать информацию. Ниже приведен пример очень простой программы на языке PL/SQL, с помощью которой обновляется цена единицы продукции, когда известен идентификационный номер этой единицы.

 

procedure update_part_unitprice (part_id in integer, new_price in number)

is

invalid_part exception;

 

begin

-- UPDATE – ОПЕРАТОР ДЛЯ ОБНОВЛЕНИЯ ЗАПИСИ В БАЗЕ ДАННЫХ

update sales.parts

set unit_price = new_price

where id = part_id;

-- ОПЕРАТОР ДЛЯ ПРОВЕРКИ ОШИБОК

if sql %notfound then

raise invalid_part;

endif;

 

exception

-- ПОДПРОГРАММА ОБРАБОТКИ ИСКЛЮЧИТЕЛЬНОЙ СИТУАЦИИ

when invalid_part then

raise_application_error(-20000, ‘Invalid Part ID’);

end update_part_unitprice;

 

Программа, приведенная в этом примере, является процедурой (PROCEDURE). С помощью PL/SQL можно строить различные программные единицы для доступа к базам данных, в том числе процедуры, функции и модули. В настоящем разделе приведено множество примеров программ PL/SQL, однако для самостоятельного создания программных конструкций на PL/SQL необходимо иметь четкое представление о базовых конструкциях этого языка.

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



<== предыдущая лекция | следующая лекция ==>
Отмена привилегий (инструкция REVOKE) | Комментарии


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.668 сек.