Правила
Правила позволяют вызывать выполнение заданных действий при определенных изменениях базы
данных. Обычно действие - это вызов процедуры. Правила ассоциируются с таблицами и
срабатывают при изменении этих таблиц.
В отличие от ограничений, которые являются лишь средством контроля относительно простых
условий, правила позволяют проверять и поддерживать сколь угодно сложные соотношения между
элементами данных в базе.
Как и в случае ограничений, проверка правил отключается при массовых операциях копирования.
Администратор базы данных может также явным образом отменить проверку правил,
воспользовавшись оператором
SET NORULES;
Оператор
SET RULES;
позволит затем восстановить работу механизма правил. По умолчанию этот механизм
включен.
Для удаления правил служит оператор
DROP RULE правило;
СУБД обеспечивает автоматическое удаление правил в тех случаях, когда удаляется
соответствующая таблица. Тем самым поддерживается целостность системы таблиц и правил.
В контексте информационной безопасности важно отметить, что создать правило, ассоциируемое с
таблицей, может владелец этой таблицы, имеющий право на выполнение соответствующей
процедуры. Пользователь, действия которого вызывают срабатывание правила, должен обладать
лишь необходимыми правами доступа к таблице. Тем самым правила неявно расширяют
привилегии пользователей. Подобные расширения нуждаются в строгом административном
контроле, поскольку даже незначительное изменение правила или ассоциированной процедуры
может кардинально повлиять на защищенность данных. Ошибка же в сложной системе правил
вообще чревата непредсказуемыми последствиями.