Skip To Content

Управление доступом к сервисам объектов на основе владения

Примечание:

Эта функциональная возможность может использоваться только для многопользовательских баз геоданных, не для баз данных.

Вы можете настроить сервис объектов для записи информации о том, кто создал каждый объект. Вы также можете запретить пользователям доступ к объектам, которыми они не владеют. Это известно как управление доступом на основе владения.

Чтобы использовать управление доступом на основе владения, вам нужно назначить поле в вашем наборе данных для хранения имени создателя. Затем вы изменяете настройки Отслеживания редактирования, чтобы обозначить его как Поле создателя. См. Отслеживание редактирования в сервисах объектов для шагов этого процесса.

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

Имейте в виду, что если вы снимите отметку Запрос, вошедший в систему пользователь будет видеть только созданные им объекты. И наоборот, если отмечен Запрос, а Обновить и Удалить не отмечены, пользователь может выполнять запрос, но будет иметь доступ только для чтения к объектам, принадлежащим другим пользователям.

Управление доступом на основе владения работает только в том случае, если сервис может получить информацию о том, кто создает объекты и пытается получить к ним доступ. В клиентском приложении разработчик должен потребовать от пользователя ввести учетные данные ArcGIS Server. Затем разработчик использует эту информацию для получения токена от ArcGIS Server. Зашифрованный токен, содержащий информацию о пользователе, следует передавать сервису объектов при выполнении запросов.

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

Примечание:

Правки, сделанные анонимными пользователями через сервис объектов, регистрируются как Esri_Anonymous в базе геоданных; однако эти значения будут отображаться как пустая строка для клиентов, использующих сервис объектов. Когда вы запрашиваете сервис объектов через REST Services Directory, чтобы найти объекты, созданные анонимными пользователями, вы должны указать Esri_Anonymous. Например, если векторный слой содержит поле создателя с именем created_by, введите created_by='Esri_Anonymous' в поле Where.

Когда сервис объектов используется на карте, переведенной в автономный режим для редактирования, имя пользователя того, кто перевел карту в автономный режим, используется для отслеживания изменений, и контроль доступа осуществляется на основе этого пользователя. Имейте в виду, что управление доступом на основе владения не применяется к администраторам ArcGIS Server; администраторы имеют полные права доступа.

Если для некоторых наборов данных в сервисе не указано поле создателя, для этих наборов данных не применяется контроль доступа на основе владения. Если вы поставили отметку, чтобы включить управление доступом на основе владения, и не указали поле создателя, вы можете увидеть предупреждения при анализе карты для публикации. Слои и таблицы без поля создателя используют правила доступа, установленные на уровне сервиса, как описано в Права доступа редактора к сервисам объектов.

Веб редакторы

Когда вы настраиваете управление доступом на основе владения, вы можете указать пользовательскую область. Например, если в качестве пользовательской области задано значение myserver.com, а пользователь Bob подключается и вставляет объект через сервис, создатель получает имя Bob@myserver.com.

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

Советы и рекомендации

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

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

Важно отметить разницу между отслеживанием редактора и контролем доступа на основе владения. Если отслеживание редактирования установлено для слоя на уровне набора данных, правки отслеживаются сервисом объектов независимо от того, действуют ли правила доступа на основе владения. Однако для установки правил доступа на основе владения требуется отслеживание редактирования на уровне набора данных.

Когда изменения вносятся пользователем, не прошедшим проверку подлинности, значение поля создателя или редактора остается пустым. Если включено управление доступом на основе владения, любой пользователь может редактировать объекты. Если управление доступом на основе владения включено, а создатель имеет значение NULL, объекты или записи доступны только для чтения; никто не может редактировать объекты. Авторы сервисов могут настроить свои данные таким образом, чтобы объекты, которые они хотят сделать доступными только для чтения, имели NULL в качестве создателя.