你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
设置表 ACL
Set Table ACL
操作设置可用于共享访问签名的表的存储访问策略。 有关详细信息,请参阅 定义存储访问策略。
注意
Set Table ACL
操作在版本 2012-02-12 及更高版本中提供。
注意
访问控制列表(ACL)是 访问控制项(ACL)的列表。 ACL 中的每个 ACE 标识
请求
可以按如下所示构造 Set Table ACL
请求。 建议使用 HTTPS。 将 myaccount 替换为存储帐户的名称。
方法 | 请求 URI | HTTP 版本 |
---|---|---|
PUT |
https://myaccount.table.core.windows.net/mytable?comp=acl |
HTTP/1.1 |
模拟存储服务 URI
针对模拟存储服务发出请求时,请将模拟器主机名和 Azure 表存储端口指定为 127.0.0.1:10002
。 然后添加模拟的存储帐户名称。
方法 | 请求 URI | HTTP 版本 |
---|---|---|
PUT |
http://127.0.0.1:10002/devstoreaccount1/mytable?comp=acl |
HTTP/1.1 |
有关详细信息,请参阅 使用 Azurite 模拟器进行本地 Azure 存储开发。
URI 参数
可以在请求 URI 上指定以下附加参数:
参数 | 描述 |
---|---|
timeout |
自选。 以秒为单位表示。 有关详细信息,请参阅 设置表存储操作的超时。 |
请求标头
下表描述了必需请求标头和可选请求标头:
请求标头 | 描述 |
---|---|
Authorization |
必填。 指定授权方案、帐户名称和签名。 有关详细信息,请参阅 授权对 Azure 存储的请求。 |
Date 或 x-ms-date |
必填。 指定请求的协调世界时(UTC)。 有关详细信息,请参阅 授权对 Azure 存储的请求。 |
x-ms-version |
自选。 指定要用于此请求的操作的版本。 有关详细信息,请参阅 azure 存储服务 |
x-ms-client-request-id |
自选。 提供客户端生成的不透明值,其中包含配置日志记录时在存储分析日志中记录的 1-kibibyte (KiB) 字符限制。 强烈建议使用此标头将客户端活动与服务器接收的请求相关联。 |
请求正文
若要指定存储的访问策略,请在 Set Table ACL
操作的请求正文中提供唯一标识符和访问策略。
SignedIdentifier
元素包括唯一标识符,如 Id
元素中指定的。
SignedIdentifier
还包括访问策略的详细信息,如 AccessPolicy
元素中指定的。 唯一标识符的最大长度为 64 个字符。
Start
和 Expiry
字段必须表示为 UTC 时间,并且必须遵循有效的 ISO 8061 格式。 支持的 ISO 8061 格式包括:
YYYY-MM-DD
YYYY-MM-DDThh:mmTZD
YYYY-MM-DDThh:mm:ssTZD
YYYY-MM-DDThh:mm:ss.ffffffTZD
对于这些格式的日期部分,YYYY
是四位数年份表示形式,MM
是两位数月份表示形式,DD
是两位数的日期表示形式。 对于时间部分,hh
是 24 小时表示法中的小时表示形式,mm
是两位数的分钟表示形式,ss
是两位数秒表示形式,ffffff
是六位数毫秒表示形式。 时间指示符 T
分隔字符串的日期和时间部分。 时区设计器 TZD
指定时区。
<?xml version="1.0" encoding="utf-8"?>
<SignedIdentifiers>
<SignedIdentifier>
<Id>unique-64-character-value</Id>
<AccessPolicy>
<Start>start-time</Start>
<Expiry>expiry-time</Expiry>
<Permission>abbreviated-permission-list</Permission>
</AccessPolicy>
</SignedIdentifier>
</SignedIdentifiers>
示例请求
Request Syntax:
PUT https://myaccount.table.core.windows.net/mytable?comp=acl HTTP/1.1
Request Headers:
x-ms-version: 2013-08-15
x-ms-date: Mon, 25 Nov 2013 00:42:49 GMT
Authorization: SharedKey myaccount:V47F2tYLS29MmHPhiR8FyiCny9zO5De3kVSF0RYQHmo=
Request Body:
<?xml version="1.0" encoding="utf-8"?>
<SignedIdentifiers>
<SignedIdentifier>
<Id>MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI=</Id>
<AccessPolicy>
<Start>2013-11-26T08:49:37.0000000Z</Start>
<Expiry>2013-11-27T08:49:37.0000000Z</Expiry>
<Permission>raud</Permission>
</AccessPolicy>
</SignedIdentifier>
</SignedIdentifiers>
响应
响应包括 HTTP 状态代码和一组响应标头。
状态代码
成功的操作返回状态代码 204(无内容)。
有关状态代码的信息,请参阅 状态和错误代码。
响应标头
此操作的响应包括以下标头。 响应还可能包括其他标准 HTTP 标头。 所有标准标头都符合 HTTP/1.1 协议规范。
响应标头 | 描述 |
---|---|
x-ms-request-id |
唯一标识发出的请求。 还可以使用它对请求进行故障排除。 有关详细信息,请参阅 API 操作疑难解答。 |
x-ms-version |
指示用于执行请求的表存储版本。 对于针对版本 2009-09-19 及更高版本发出的请求,将返回此标头。 |
Date |
一个 UTC 日期/时间值,指示服务发送响应的时间。 |
x-ms-client-request-id |
可用于对请求和相应的响应进行故障排除。 此标头的值等于 x-ms-client-request-id 标头的值(如果请求中存在),并且该值最多为 1,024 个可见 ASCII 字符。 如果请求中不存在 x-ms-client-request-id 标头,则响应中不会显示此标头。 |
示例响应
Response Status:
HTTP/1.1 204 No Content
Response Headers:
Transfer-Encoding: chunked
Date: Mon, 25 Nov 2013 22:42:55 GMT
x-ms-version: 2013-08-15
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0
授权
在 Azure 存储中调用任何数据访问操作时,需要授权。 可以使用 Microsoft Entra ID 或共享密钥授权 Set Table ACL
操作。
若要使用 Microsoft Entra ID 授权 Set Table ACL
操作,安全主体需要一个包含以下 RBAC 操作的自定义 Azure RBAC 角色:Microsoft.Storage/storageAccounts/tableServices/tables/setAcl/action
。
重要
Microsoft建议将 Microsoft Entra ID 与托管标识配合使用来授权对 Azure 存储的请求。 与共享密钥授权相比,Microsoft Entra ID 提供更高的安全性和易用性。
言论
为表设置权限时,将替换现有权限。 若要更新表的权限,请调用 获取表 ACL 以提取与表关联的所有访问策略。 修改要更改的访问策略,然后使用完整的数据集调用 Set Table ACL
以执行更新。
建立存储访问策略
存储访问策略可以指定其关联的共享访问签名的开始时间、过期时间和权限。 根据控制对共享或文件资源的访问的方式,可以:
- 在存储的访问策略中指定所有这些参数,并从共享访问签名的 URL 中省略这些参数。 这样做允许你修改关联的签名的行为,或随时撤销它。
- 在存储的访问策略中指定一个或多个访问策略参数,并在 URL 上指定其他参数。
- 指定 URL 上的所有参数。 在这种情况下,可以使用存储的访问策略来撤销签名,但不能修改其行为。
有关建立访问策略的详细信息,请参阅 定义存储访问策略。
共享访问签名和存储访问策略必须包含授权签名所需的所有字段。 如果缺少任何必填字段,请求将失败。 同样,如果在共享访问签名 URL 和存储访问策略中同时指定了字段,则请求将失败并显示状态代码 400(错误请求)。 有关组成共享访问签名的字段的详细信息,请参阅 创建服务 SAS。
可以随时为表设置最多五个单独的访问策略。 如果在请求正文中传递了 5 个以上的访问策略,服务将返回状态代码 400(错误请求)。
注意
在表上建立存储访问策略时,最长可能需要 30 秒才能生效。 在此时间间隔内,与存储访问策略关联的共享访问签名将失败,状态代码为 403(禁止),直到访问策略处于活动状态。
另请参阅
定义存储访问策略
创建和使用共享访问签名
使用共享访问签名 委托访问权限
获取表 ACL
授权对 Azure 存储 的请求
状态和错误代码