設定資料表 ACL
此 Set Table ACL
作業會設定可用於共用存取簽章之資料表的預存存取原則。 如需詳細資訊,請參閱定義預存存取原則。
注意
2012-02-12 版和更新版提供 Set Table ACL
作業。
注意
ACL) (存取控制清單 是存取控制 專案 清單, (ACL) 。 ACL 中的每個 ACE 可識別「信任者」(Trustee),並指定該信任者所允許、拒絕或稽核的「存取權限」(Access Right)。 如需詳細資訊,請參閱 存取控制清單。
要求
您可以建構 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 |
如需詳細資訊,請參閱使用 Azure 模擬器進行本機 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 |
可用來針對要求和對應的回應進行疑難排解。 如果此標頭存在於要求中,且此值最多為 1,024 個可見的 ASCII 字元,則此標頭的值等於標頭的值 x-ms-client-request-id 。
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
授權
只有帳戶擁有者可以呼叫這項作業。
備註
除非擁有者已針對資料表內的資源發出共用存取簽章,否則只有帳戶擁有者可以存取特定資料表中的資源。
當您設定資料表的權限時,會取代現有的權限。 若要更新資料表的許可權,請呼叫 Get Table ACL 以擷取與資料表相關聯的所有存取原則。 修改您想要變更的存取原則,然後使用一組完整的資料呼叫 Set Table ACL
來執行更新。
建立預存存取原則
預存存取原則可以指定其相關聯共用存取簽章的開始時間、到期時間和許可權。 視您想要控制共用或檔案資源的存取方式而定,您可以:
- 在預存存取原則內指定所有這些參數,並從共用存取簽章的 URL 中省略這些參數。 這樣做可讓您修改相關聯的簽章行為,或隨時撤銷它。
- 在預存存取原則內指定一或多個存取原則參數,並在 URL 上指定其他參數。
- 指定 URL 上的所有參數。 在此情況下,您可以使用預存存取原則來撤銷簽章,但不能修改其行為。
如需建立存取原則的詳細資訊,請參閱 定義預存存取原則。
共用存取簽章和預存存取原則必須包含授權簽章所需的所有欄位。 如果遺漏任何必要的欄位,要求將會失敗。 同樣地,如果同時在共用存取簽章 URL 和預存存取原則中指定某個欄位,則要求會失敗,並顯示狀態碼 400 (不正確的要求)。 如需組成共用存取簽章之欄位的詳細資訊,請參閱 建立服務 SAS。
您可以隨時為數據表設定五個不同的存取原則。 如果在要求本文中傳遞五個以上的存取原則,服務會傳回狀態碼 400 (「不正確的要求」) 。
注意
當您在資料表上建立預存存取原則時,最多可能需要 30 秒才會生效。 在此間隔期間,與預存存取原則相關聯的共用存取簽章將會失敗,狀態碼為 403 (禁止) ,直到存取原則變成作用中為止。
另請參閱
定義預存的存取原則
建立和使用共用存取簽章
使用共用存取簽章委派存取權
取得資料表 ACL
授權對 Azure 儲存體的要求
狀態和錯誤碼