В контексте баз данных термин «безопасность» означает защиту данных в базе данных (или в базах данных) от несанкционированного раскрытия, изменения или уничтожения. По степени безопасности, которую она обеспечивает, система DB2 в значительной мере превосходит возможности большинства известных систем. Единица данных, которая может индивидуально защищаться, варьируется от целой таблицы до конкретного значения данных, занимающего позицию на пересечении конкретных строки и столбца в такой таблице. Для некоторых операций защищаемая единица данных на самом деле может быть больше, чем одна таблица. Например, для команд START и STOP, выдаваемых оператором с консоли, такой единицей является вся база данных. Данный пользователь может иметь различные привилегии доступа к различным объектам, например привилегии на выполнение только операций SELECT над одной таблицей, операций SELECT и UPDATE — над другой и т. д. Различные пользователи также могут, конечно, иметь различные привилегии доступа к одному и тому же объекту. Например, пользователь А может иметь только привилегии на выполнение операций SELECT над заданной таблицей, в то время как другой пользователь В мог бы одновременно иметь привилегии на выполнение операций как SELECT, так и UPDATE над той же самой таблицей.
|
|
Для обеспечения безопасности в системе DB2 имеются две более или менее независимые возможности: 1) механизм представлений, который, как уже упоминалось в конце предыдущей главы, может использоваться для скрытия засекреченных данных от пользователей, не обладающих правом доступа, и 2) подсистема санкционированиядоступа, которая позволяет имеющим определенные привилегии пользователям избирательно и динамически предоставлять эти привилегии другим пользователям и впоследствии отменять эти привилегии, если потребуется. Механизм представлений рассматривается в разделе 9 3, а подсистема санкционирования доступа (предложения GRANT — предоставить и REVOKE — отменить) — в разделе 9.4.
Конечно, все решения относительно того, какие конкретные привилегии и каким конкретно пользователям следует предоставить, имеют политический, а не технический характер. Ясно, что они по существу находятся вне юрисдикции системы DB2. Все, что может DB2, это проводить такие решения в жизнь после того, как они были приняты. Для того чтобы DB2 была способна правильно выполнять эту функцию:
а) Результаты таких решений должны стать известными системе (это делается посредством предложений GRANTи REVOKE) и должны запоминаться системой (это делается путем сохранения их в каталоге в форме ограничений санкционирования доступа).
|
|
б) Должны иметься средства, позволяющие проверять, удовлетворяет ли данный запрос на доступ соответствующим ограничениям санкционирования доступа. Под «запросом на доступ» здесь понимается комбинация запрашиваемой операции, целевого объекта и запрашивающего пользователя. Большинство таких проверок осуществляется генератором планов прикладных задач во время связывания первоначального запроса (см. раздел 14.4).
в) Система должна быть способна решать, какие ограничения применимы к данному запросу, и поэтому распознавать источник этого запроса, т. е. распознавать, от какого конкретно пользователя исходит данный конкретный запрос. Поэтому, прежде чем перейти к обсуждению самих по себе механизма представлений и подсистемы санкционирования доступа, следует сначала что-либо сказатьоб идентификации пользователей в системе DB2 (раздел 9.2).