Разрешения

Azure Cosmos DB — это глобально распределенная многомодедельная база данных, которая поддерживает модели данных документов, графов и "ключ—значение". Содержимое этого раздела предназначено для управления ресурсами разрешений с помощью API SQL через REST.

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

Для каждого пользователя с конкретным ресурсом можно связать только одно разрешение. Например, MarketingCollection с идентификатором "permision2" можно связать только с одним разрешением для пользователя JanetSmith@contoso.com. Попытка добавить другое разрешение для доступа Janet к ресурсу MarketingCollection приведет к возникновению ошибки (409 — конфликт).

Существует только два режима разрешений: Все и Чтение. Режим Все предоставляет доступ к ресурсу на чтение, запись и удаление. Режим чтения предоставляет доступ к ресурсу только для чтения. Маркер ресурса создается каждый раз, когда для разрешения выполняется метод GET, PUT или POST. По умолчанию срок действия маркера ресурса составляет один час, и его можно продлить до 5 часов, указав нужное значение в параметре заголовка x-ms-documentdb-expiry-seconds . Сведения о том, как задать этот заголовок, см. в разделе headers статьи Создание разрешения . Срок действия может быть переопределен и установлен равным до 5 часов. В следующем примере показана конструкция JSON для разрешения.

{  
   "id":"permision2",  
   "permissionMode":"All",  
   "resource":"dbs/ruJjAA==/colls/ruJjAM9UnAA=/",  
   "_rid":"ruJjAFjqQABUp3QAAAAAAA==",  
   "_ts":1408237846,  
   "_self":"dbs/ruJjAA==/users/ruJjAFjqQAA=/permissions/ruJjAFjqQABUp3QAAAAAAA==/",  
   "_etag":"00004900-0000-0000-0000-53f001160000",  
   "_token":"type=resource&ver=1&sig=m32/00W65F8ADb3psljJ0g==;v0kQGihedau1pVGGQmuPgzlEcfsYDWSdfn2kyjDc1qF1aZfPHXzIS/BFMcuZQRUr6C5c5PgiyCSwhiAgZMJne2DorfMbE/GUHmxBLjOnykLARqwn3zpZpz9b2axWtL8+qQFX81nocdEDvBVzFuobyul6QimbmeZ7D6D1K4qJT9feuJkIBfczeAp/sKaSupXEgB3qyih0rej5N6Wv14Gufohh1QTlCRIzK3FqQv4xjcY=;"  
}  
  
Свойство Описание
идентификатор Обязательный. Это настраиваемое пользователем свойство. Это уникальное имя, которое идентифицирует разрешение, т. е. не два разрешения совместно используют один и тот же идентификатор в пределах пользователя. Длина идентификатора не должна превышать 255 символов.
permissionMode Обязательный. Режим доступа к ресурсу для пользователя: Все или Чтение. Все предоставляет доступ на чтение, запись и удаление к ресурсу. Режим Read ограничивает право доступа на чтение для ресурса.
resource Обязательный. Полный адресуемый путь к ресурсу, который связан с разрешением. Например, dbs/ruJjAA==/colls/ruJjAM9UnAA=/.
_rid Это свойство, созданное системой. Идентификатор ресурса (_rid) — это уникальный идентификатор, который также является иерархическим для стека ресурсов в модели ресурсов. Он используется системой для размещения и перемещения по ресурсам разрешения.
_Ts Это свойство, созданное системой. Оно представляет метку времени последнего обновления ресурса. Значение — метка времени.
_Самостоятельно Это свойство, созданное системой. Это уникальный адресуемый URI для ресурса.
_etag Это созданное системой свойство, указывающее тег ресурса, необходимый для управления оптимистическим параллелизмом.
_Маркер Это созданный системой маркер ресурса для конкретного ресурса и пользователя.

Задания

С разрешениями можно выполнять следующие задачи:

См. также: