你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
权限
Azure Cosmos DB 是一个全球分布式多模型数据库,支持文档、图形和键值数据模型。 本部分中的内容用于通过 REST 使用 SQL API 管理权限资源。
权限是与有权访问特定资源的用户关联的授权令牌。 它用于管理对特定用户的集合、文档、附件、存储过程、触发器和用户定义函数的访问。
只能将一个权限关联到某个用户的某个特定资源。 例如,ID 为“permision2”的 MarketingCollection 只能与用户 JanetSmith@contoso.com的一个权限相关联。 尝试向 Janet 的 MarketingCollection 添加另一个权限会导致错误 (409 冲突) 。
只有两种权限模式: “全部 ”和 “读取”。 “ 全部 ”模式提供对资源的读取、写入和删除访问权限。
读取模式提供对资源的只读访问权限。 每次对权限执行 GET、PUT 或 POST 时,都将创建一个资源令牌。 默认情况下,资源令牌的有效期为 1 小时,通过在标头设置中 x-ms-documentdb-expiry-seconds
指定所需的值,可将有效期延长至最多 5 小时。 若要了解如何设置此标头,请参阅 创建权限一 文的标头部分。 可将有效期重写为最多 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=;"
}
属性 | 说明 |
---|---|
id | 必需。 它是用户可设置的属性。 它是标识权限的唯一名称,也就是说,一个用户中没有两个权限共享同一 ID。 ID 不得超过 255 个字符。 |
permissionMode | 必需。 用户的资源访问模式: “全部 ”或“ 读取”。 “全部 ”提供对资源的读取、写入和删除访问权限。 Read 限制用户对资源的读取访问权限。 |
resource | 必需。 与权限相关联的资源的完全可寻址路径。 例如,dbs/ruJjAA==/colls/ruJjAM9UnAA=/。 |
_摆脱 | 它是 系统生成的属性。 资源 ID (_rid) 是一个唯一标识符,也是根据资源模型上的资源堆栈分层的。 它可供内部用于放置和导航权限资源。 |
_ts | 它是系统生成的属性。 它指定资源的上次更新时间戳。 高值是一个时间戳。 |
_自我 | 它是系统生成的属性。 它是资源的唯一可寻址 URI。 |
_Etag | 它是系统生成的属性,用于指定乐观并发控制所需的资源 etag。 |
_令 牌 | 它是系统为特定资源和用户生成的资源令牌。 |
可以使用权限执行以下任务: