Разрешения
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 | Это созданное системой свойство, указывающее тег ресурса, необходимый для управления оптимистическим параллелизмом. |
_Маркер | Это созданный системой маркер ресурса для конкретного ресурса и пользователя. |
Задания
С разрешениями можно выполнять следующие задачи: