設定數據表 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 |
可用來針對要求和對應的回應進行疑難解答。 如果此標頭存在於要求中,且值最多為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
授權
在 Azure 記憶體中呼叫任何數據存取作業時,需要授權。 您可以使用 Microsoft Entra ID 或共用金鑰來授權 Set Table ACL
作業。
若要使用 Microsoft Entra 識別元授權 Set Table ACL
作業,安全性主體需要自定義的 Azure RBAC 角色,其中包含下列 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。
您可以隨時為數據表設定五個不同的存取原則。 如果在要求主體中傳遞了五個以上的存取原則,服務會傳回狀態代碼 400 (不正確的要求)。
注意
當您在數據表上建立預存存取原則時,最多可能需要 30 秒才會生效。 在此間隔期間,與預存存取原則相關聯的共用存取簽章將會失敗,狀態代碼為 403(禁止),直到存取原則變成作用中為止。
另請參閱
定義預存存取原則
建立和使用共用存取簽章
使用共用存取簽章委派存取權
取得數據表 ACL
授權對 Azure 記憶體的要求
狀態和錯誤碼