русс | укр

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

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

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

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


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

Право на домены


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


Право на использование ссылок

Право удалять записи

Право на удаление записей предоставляется очень просто, например:

 

GRANT DELETE

ON Клиенты, Сотрудники, Товары

TO SuperManager;

 

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

Предположим, пользователю стало известно о появлении в базе данных особой таблицы Сотрудники_секретно, содержащей отдельный список сотрудников, например, представленных к премии или, наоборот, к увольнению. Ему также стало известно, что первичным ключом в этой таблице является столбец id. Однако пользователь не имеет никаких прав на эту таблицу, даже права на просмотр. Тогда он может узнать, кто попал в секретный список, следующим образом. Сначала он создает таблицу mytab со столбцом id, который определяет как внешний ключ со ссылкой на таблицу Сотрудники_секретно:

 

CREATE TABLE mytab (

ID INTEGER REFERENCES Сотрудники_секретно

) ;

Затем пользователь пытается добавить новые записи в свою таблицу mytab, подбирая значения столбца id. Если выбранное им значение принимается таблицей mytab, то сотрудник с данным идентификатором находится в секретном списке, а в противном случае – нет. Узнав таким способом список идентификаторов сотрудников секретного списка, шпион может по другой таблице (например, Сотрудники) узнать фамилии тех, кто был занесен в секретный список.

Поэтому согласно стандарту SQL:2003 права на использование ссылок должны устанавливаться явно:



 

GRANT REFERENCES (ID)

ON Сотрудники_секретно

TO PersonManager;

 

Это не позволит использовать описанный прием взлома защиты.

 

При создании таблиц нередко используют определения доменов (множество значений). Домен в реляционной теории связывается с атрибутом отношения и определяет некоторое ограничение на этот атрибут. Домены позволяют определить однотипные столбцы с одинаковыми ограничениями, находящиеся в различных таблицах. Ограничения на вводимые данные можно назначить не только для отдельных столбцов, но и для таблиц в целом. Чтобы создать домен используется синтаксис:

 

CREATE DOMAIN имяДомена типДанных Ограничения;

 

Обратите внимание, что в определении домена, пока не связанного ни с каким столбцом какой-либо таблицы, задается тип значений домена и ограничения на эти значения. Например, в нескольких таблицах БД имеется столбец с именем Код_продукта и типом CHAR (6), значения которого должны начинаться с символа «А», «С» или «Х». Для таких столбцов можно предварительно создать общий домен:

 

CREATE DOMAIN ProdDomain CHAR (6)

CHECK (SUBSTRING (VALUE, 1, 1) IN ( 'A', 'C', 'X', );

 

После определения домена можно создавать таблицу, использующую этот домен:

 

CREATE TABLE Товары (

Код_продукта ProdDomain,

Описание VARCHAR

);

 

Например, можно определить домен Bonus (премия) с типом данных decimal (*9,2) и ограничением, согласно которому премия не может быть отрицательной и больше 15000:

 

CREATE DOMAIN Bonus

DECIMAL (9, 2)

CHECK (Bonus >= 0 AND Bonus <= 15000);

 

Тогда этот домен можно применить для определения столбцов в одной или нескольких таблицах. Например:

 

CREATE TABLE Платежная_ведомость (

ID INTEGER,

Имя VARCHAR (25),

Оклад DECIMAL (9,2),

Премия Bonus

);

 

Однако при использовании доменов могут возникнуть вопросы, связанные с безопасностью. Так, верхняя граница премии может являться секретом для большинства пользователей. Однако любой пользователь может создать таблицу со столбцом, который определен через домен Bonus. Постепенно увеличивая значения в этом столбце, пока они принимаются таблицей, можно узнать максимальное значение (попытка ввести большее значение будет отвергнута СУБД).

Чтобы не допустить такой возможности, владелец Домена (тот, кто его-создал) должен явно предоставить права на его использование, например:

 

GRANT USAGE

ON DOMAIN Bonus

TO PersonManager, President;

 



<== предыдущая лекция | следующая лекция ==>
Право изменять данные | Отмена привилегий


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


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

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

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


 


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

 
 

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

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