Статус документа
Статус документа

ГОСТ Р ИСО/МЭК 9594-3-98 Информационная технология (ИТ). Взаимосвязь открытых систем. Справочник. Часть 3. Определение абстрактных услуг

     9 ОПЕРАЦИИ СПРАВОЧНИКА ТИПА "ЧТЕНИЕ"


Существуют две операции типа "чтение": read(чтение) и compare(сравнение), определенные в 9.1 и 9.2 соответственно. Операция "отклонение", определенная в 9.3, представлена вместе с этими операциями для полноты.

9.1 Чтение

9.1.1 Синтаксис операции "чтения"

Операция read используется для получения информации из явно идентифицированной записи. Она может быть использована также для проверки правильности различительного имени. Факультативно аргументы операции могут быть подписаны запросчиком (см. 7.10). При необходимости справочник может обеспечить подпись результата.

read OPERATION

: : =

{



ARGUMENT

ReadArgument



RESULT

ReadResult



ERRORS

{ attributeError | nameError | serviceError |



referral | abandoned | securityError }



CODE

id-opcode-read }

ReadArgument

:: OPTIONALLY-SIGNED { SET {



object

[0]

Name,



selection

[1]

EntryInformationSelection DEFAULT {},



modifyRightsRequest



[2]

BOOLEAN DEFAULT FALSE,



COMPONENTS OF

CommonArguments }}

ReadResult

: : = OPTIONALLY-SIGNED { SET {



entry

[0]

Entrylnformation,



modify Rights

[1]

ModifyRights OPTIONAL,



COMPONENTS OF

CommonResults }}

Modify Rights

: : = SET OF SEQUENCE {



item

CHOICE {



entry

[0]

NULL,



attribute

[1]

Attribute Type,



value

[2]

Attribute ValueAssertion },



permission

[3]

BIT STRING {add (0), remove(1), rename (2), move(3) }}

9.1.2 Аргументы операции "чтения"

Аргумент object идентифицирует запись объекта, из которой запрашивается информация. Если имя имеет один или несколько псевдонимов, они разыменовываются (если это только не запрещено соответствующими служебными ограничениями).

Аргумент selection указывает, какая информация запрашивается из записи (см. 7.6). Однако не следует полагать, что выдаваемые атрибуты те же, что и запрашиваемые или ограничиваемые ими.

CommonArguments (см. 7.3) содержит спецификацию служебных ограничений, относящихся к запросу. К данной операции компонент size Limit не имеет отношения и при его наличии он игнорируется.

Аргумент ModifyRightsRequest используется для запроса выдать права запросчика на модификацию записи и ее атрибутов.

9.1.3 Результаты операции "чтение"

При успешном выполнении запроса операции "чтение" должен быть выдан положительный результат.

Параметр результата entry содержит запрашиваемую информацию (см. 7.7).

Параметр ModifyRights имеет место, если он был запрошен посредством аргумента modifyRightsRequest и пользователь имеет привилегии на модификацию некоторой части или всей запрошенной информации записи, а выдача этой информации допускается локальной стратегией защиты. При выдаче результата права запросчика на модификацию передаются для данной записи и атрибутов, указанных в аргументе selection. Этот параметр содержит следующее.

- Элемент SET выдается для каждого параметра entry, для каждого запрашиваемого атрибута, пользователь которого имеет право добавлять или удалять, и для каждого выдаваемого значения атрибута, относительно которого права пользователей добавлять или удалять отличаются от соответствующих прав относительно самого атрибута.

- Выдаваемое permission указывает, какие операции или действия пользователя над записью будут успешно выполнены. В случае записи remove указывает, что успешной может быть операция RemoveEntry; rename указывает, что успешной может быть операция ModifyDN при отсутствии параметра newSuperior; и move указывает, что успешной может быть операция ModifyDN при наличии параметра newSuperior и при неизменном ОРИ.

В случае атрибутов и их значений add указывают, что успешной может быть операция ModifyEntry, которая добавляет атрибут или значение, a remove указывает, что успешной может быть операция ModifyEntry, которая удаляет атрибут или значение.

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

9.1.4 Ошибки операции "чтение"

При безуспешном выполнении запроса операции "чтение" должна быть выдана одна из указанных ниже ошибок. Если ни один из атрибутов, явно указанных в selection, не может быть выдан, тогда должен быть передан параметр AttributeError с проблемой noSuchAttributeOrValue. Причины, по которым могут быть выданы другие ошибки, определены в разделе 12.

9.1.5 Принятие решений при выполнении операции "чтение" и использовании базового управления доступом

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

1) Для читаемой записи требуется разрешение Read. Если разрешение не предоставлено, операция заканчивается с отрицательным результатом в соответствии с 7.11.3.

2) Если элемент infoTypes в selection определяет, что должны быть выданы только типы атрибутов, то разрешение Read требуется для каждого подлежащего выдаче типа атрибута. Если разрешение не предоставлено, соответствующий тип атрибута не учитывается в ReadResult. Если в результате применения этих управлений никакая информация атрибута не выдается, вся операция оказывается безуспешной в соответствии с 9.1.5.1.

3) Если элемент infoTypes операции selection определяет, что должны быть выданы типы атрибутов и их значения, то разрешение Read требуется для каждого подлежащего выдаче типа атрибута и для каждого значения. Если не предоставлено разрешение на тип атрибута, соответствующий атрибут в ReadResult не учитывается. Если не предоставлено разрешение на значение атрибута, это значение исключается из соответствующего атрибута. Если разрешение не предоставлено ни на одно из значений атрибута, выдается элемент Attribute, содержащий пустой SET OF AttributeValue. Если в результате применения этих управлений никакая информация атрибута не выдается, вся операция заканчивается безуспешно в соответствии с 9.1.5.1.

9.1.5.1 Выдаваемые ошибки

Если операция заканчивается безуспешно, как определено в перечислениях 2 и 3 пункта 9.1.5, может быть выдана одна из следующих ошибок: