Поделиться через


Замена разрешения

Выполнив операцию PUT в определенном ресурсе разрешений, можно заменить весь ресурс пользователя. Чтобы выполнить замену, в текст запроса необходимо добавить все свойства, настраиваемые пользователем, — id, permissionMode и resource. Несмотря на то, что в тексте запроса должны быть добавлены все настраиваемые свойства, не все свойства повлекут изменения. После успешной замены разрешения создается маркер ресурса. Срок действия нового маркера ресурса истекает через час, который является периодом по умолчанию, если он не переопределен с помощью заголовка x-ms-documentdb-expiry-seconds .

Запрос

Метод Универсальный код ресурса (URI) запроса Описание
PUT https://{databaseaccount}.documents.azure.com/dbs/{db-id}/users/{имя_пользователя}/permissions/{permission-name} Обратите внимание, что {databaseaccount} — это имя учетной записи Azure Cosmos DB, созданной в рамках вашей подписки. Значение {db-id} — это созданное пользователем имя/идентификатор базы данных, а не системный идентификатор (rid). Значение {user-name} — это имя пользователя. Значение {permission-name} — это имя заменяемого разрешения.

Заголовки

Заголовки, используемые всеми запросами Cosmos DB, см. в статье Общие заголовки запросов REST Azure Cosmos DB .

Заголовок Обязательно Тип Описание
x-ms-documentdb-expiry-seconds Необязательный Целое число Срок действия маркера ресурсов, возвращаемого операцией. По умолчанию маркер ресурсов действителен в течение одного часа. Чтобы переопределить значение по умолчанию, задайте для этого заголовка нужный срок действия в секундах. Максимальное значение переопределения — 18000, что составляет пять часов.

Текст

Свойство Обязательно Описание
идентификатор Обязательно Это уникальное имя, которое идентифицирует разрешение, т. е. ни одно из двух разрешений, принадлежащих пользователю, не может совместно использовать один и тот же идентификатор. Длина идентификатора не должна превышать 255 символов.
permissionMode Обязательно Режим доступа к ресурсу для пользователя: Все или Чтение. Все предоставляет доступ на чтение, запись и удаление к ресурсу. Режим Read ограничивает право доступа на чтение для ресурса.
resource Обязательно Полный адресуемый путь к ресурсу, который связан с разрешением. Например, dbs/volcanodb/colls/volcano1.
{  
    "id": "another_permission",  
    "permissionMode": "All",  
    "resource": "dbs/volcanodb/colls/volcano1"  
}  

Ответ

Заголовки

Заголовки, возвращаемые всеми ответами Cosmos DB, см. в статье Общие заголовки ответов REST Azure Cosmos DB .

Коды состояния

В таблице ниже указаны стандартные коды состояния, возвращаемые этой операцией. Полный список кодов состояния см. в разделе Коды состояния HTTP.

Код состояния HTTP Описание
200 (ОК) Операция замены прошла успешно.
400 — недопустимый запрос Недопустимый текст JSON. Проверьте наличие фигурных скобок и кавычек. Кроме того, код 400 возвращается, если текст запроса не содержит хотя бы одно из задаваемых свойств. Убедитесь, что включены все три настраиваемых свойства.
404 — не найдено Пользователь, который требуется заменить, больше не является ресурсом, то есть разрешение было удалено.
409. Конфликт Идентификатор, предоставленный для разрешения, был взят существующим разрешением. Код 409 также возвращается, если новое разрешение уже назначено для другого разрешения пользователя.

Текст

Свойство Описание
_Избавить Это свойство, созданное системой. Идентификатор ресурса (_rid) — это уникальный идентификатор, который также является иерархическим для стека ресурсов в модели ресурсов. Он используется системой для размещения и перемещения по ресурсам разрешения.
_Ts Это свойство, созданное системой. Оно представляет метку времени последнего обновления ресурса. Значение — метка времени.
_Самостоятельно Это свойство, созданное системой. Это уникальный адресуемый URI для ресурса.
_etag Это созданное системой свойство, представляющее тег ресурса, необходимый для управления оптимистическим параллелизмом.
_Маркер Это созданный системой маркер ресурса для конкретного ресурса и пользователя.
{  
    "id": "another_permission",  
    "permissionMode": "All",  
    "resource": "dbs/volcanodb/colls/volcano1",  
    "_rid": "Sl8fAG8cXgBn6Ju2GqNsAA==",  
    "_ts": 1449605172,  
    "_self": "dbs\/Sl8fAA==\/users\/Sl8fAG8cXgA=\/permissions\/Sl8fAG8cXgBn6Ju2GqNsAA==\/",  
    "_etag": "\"00000f00-0000-0000-0000-566738340000\"",  
    "_token": "type=resource&ver=1&sig=liT1vyY6rvPBZXRuXNluPA==;A4zwoVw1GcQUSF3N2d1D5J1s3DhN0547KlhdYkkfT5UzGWecIDJf+LInlbYjqgZKwHKrFfeHLJWq0OFfH9KUOaeMCkPPlu8yKNM098las28ClqVNwmi9Ir\/jC3UVFU\/yFQl4z4wiMxxbrCkpnA\/ZsKqmxZ1LAosimPgF4zKvC9isWjgmB1N8+X9pH49wDg62tGkHF0HoSu+KpF7bkjP4VpHfo9u9jV86l7brrOvUYyE=;"  
}  
  

Пример

PUT https://contosomarketing.documents.azure.com/dbs/volcanodb/users/a_user/permissions/a_permission HTTP/1.1  
x-ms-date: Tue, 08 Dec 2015 20:06:11 GMT  
authorization: type%3dmaster%26ver%3d1.0%26sig%3d8PTpiHHJvUq7ra07iWGYpiLJ%2fMyglgJZxfyGKHWjbaQ%3d  
Cache-Control: no-cache  
User-Agent: contoso/1.0  
x-ms-version: 2015-08-06  
Accept: application/json  
Host: contosomarketing.documents.azure.com  
Cookie: x-ms-session-token=866  
Content-Length: 554  
Expect: 100-continue  
Connection: Keep-Alive  
  
{  
    "id": "another_permission",  
    "permissionMode": "All",  
    "resource": "dbs/volcanodb/colls/volcano1",  
    "_rid": "Sl8fAG8cXgBn6Ju2GqNsAA==",  
    "_ts": 1449604760,  
    "_self": "dbs/volcanodb/users/a_user/permissions/a_permission",  
    "_etag": "\"00000e00-0000-0000-0000-566736980000\"",  
    "_token": "type=resource&ver=1&sig=zv2AYJFeWMhks0Ezv2WVKQ==;x2fUwajIajvwi+vfQ6GHmf82HTK4qppkhRHMk1Nx8ei0g8zuxIBQ6cyu0d3hOV06fC/PdyIj2/bmNCwpfkxFI++QI1eVPP0/tGTQuMPyqNVCCM5t8KFx6rVNUReBHlWNp0y8iAZ3pRvA2Wl6uaE0K7tFQKmPKqUbumYbOMWKk1kDCfCeCF0Qkt7RYUXlmvawFNoYnVRN/mgnpzX23vW63mU/GoeRXnMOI1HXcdrnf4M=;"  
}  
  
HTTP/1.1 200 Ok  
Cache-Control: no-store, no-cache  
Pragma: no-cache  
Content-Type: application/json  
Content-Location: https://contosomarketing.documents.azure.com/dbs/volcanodb/users/a_user/permissions/a_permission  
Server: Microsoft-HTTPAPI/2.0  
Strict-Transport-Security: max-age=31536000  
x-ms-last-state-change-utc: Sun, 29 Nov 2015 02:25:35.212 GMT  
etag: "00000f00-0000-0000-0000-566738340000"  
x-ms-resource-quota: permissions=2000000;  
x-ms-resource-usage: permissions=2;  
x-ms-schemaversion: 1.1  
x-ms-alt-content-path: dbs/volcanodb/users/a_user  
x-ms-content-path: Sl8fAG8cXgA=  
x-ms-quorum-acked-lsn: 866  
x-ms-session-token: 867  
x-ms-current-write-quorum: 3  
x-ms-current-replica-set-size: 4  
x-ms-request-charge: 9.9  
x-ms-serviceversion: version=1.5.57.3  
x-ms-activity-id: 4b91c955-ebd4-4059-a58e-91c99226f225  
Set-Cookie: x-ms-session-token=867; Domain=contosomarketing.documents.azure.com; Path=/dbs/volcanodb/users/a_user  
x-ms-gatewayversion: version=1.5.57.3  
Date: Tue, 08 Dec 2015 20:06:10 GMT  
Content-Length: 581  
  
{  
    "id": "another_permission",  
    "permissionMode": "All",  
    "resource": "dbs/volcanodb/colls/volcano1",  
    "_rid": "Sl8fAG8cXgBn6Ju2GqNsAA==",  
    "_ts": 1449605172,  
    "_self": "dbs\/Sl8fAA==\/users\/Sl8fAG8cXgA=\/permissions\/Sl8fAG8cXgBn6Ju2GqNsAA==\/",  
    "_etag": "\"00000f00-0000-0000-0000-566738340000\"",  
    "_token": "type=resource&ver=1&sig=liT1vyY6rvPBZXRuXNluPA==;A4zwoVw1GcQUSF3N2d1D5J1s3DhN0547KlhdYkkfT5UzGWecIDJf+LInlbYjqgZKwHKrFfeHLJWq0OFfH9KUOaeMCkPPlu8yKNM098las28ClqVNwmi9Ir\/jC3UVFU\/yFQl4z4wiMxxbrCkpnA\/ZsKqmxZ1LAosimPgF4zKvC9isWjgmB1N8+X9pH49wDg62tGkHF0HoSu+KpF7bkjP4VpHfo9u9jV86l7brrOvUYyE=;"  
}  
  

См. также: