Задание списков управления доступом для таблиц

Операция Set Table ACL задает хранимые политики доступа для таблицы, которые можно использовать с подписанными URL-адресами. Дополнительные сведения см. в разделе Определение хранимой политики доступа.

Примечание

Операция Set Table ACL доступна в версии 2012-12-12 и последующей.

Примечание

Список управления доступом (ACL) — это список записей управления доступом (ACE). Каждый ACE в ACL определяет доверенного лица и указывает права доступа , разрешенные, запрещенные или проверенные для этого доверенного лица. Дополнительные сведения см. в разделе Списки управления доступом.

Запрос

Запрос можно создать 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 кибибайт (КиБ), которое записывается в журналы Аналитика Службы хранилища при настройке ведения журнала. Мы настоятельно рекомендуем использовать этот заголовок для сопоставления действий на стороне клиента с запросами, получаемыми сервером.

Текст запроса

Можно указать хранимую политику доступа, предоставив уникальный идентификатор и политику доступа в тексте запроса для операции 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 , если он присутствует в запросе и содержит не более 1024 видимых символов 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  
  

Авторизация

Только владелец учетной записи может вызвать эту операцию.

Комментарии

Только владелец учетной записи может получить доступ к ресурсам в определенной таблице, если только владелец не выдал подписанный url-адрес для ресурса в таблице.

При установке разрешений для таблицы существующие разрешения заменяются. Чтобы обновить разрешения таблицы, вызовите Get Table ACL для получения всех политик доступа, связанных с таблицей. Измените политику доступа, которую вы хотите изменить, а затем вызовите Set Table ACL с полным набором данных для выполнения обновления.

Создание хранимых политик доступа

Хранимая политика доступа может указать время начала, срок действия и разрешения для подписанных url-адресов, с которыми она связана. В зависимости от того, как вы хотите управлять доступом к общей папке или файлу ресурса, вы можете:

  • Укажите все эти параметры в хранимой политике доступа и опустите их в URL-адресе подписанного URL-адреса. Это позволяет изменить поведение связанной сигнатуры или отозвать его в любое время.
  • Укажите один или несколько параметров политики доступа в хранимой политике доступа и укажите другие параметры в URL-адресе.
  • Укажите все параметры в URL-адресе. В этом случае можно использовать хранимую политику доступа для отзыва подписи, но не для изменения ее поведения.

Дополнительные сведения о создании политик доступа см. в статье Определение хранимой политики доступа.

Вместе подписанный URL-адрес и хранимая политика доступа должны включать все поля, необходимые для авторизации подписи. Если какие-либо обязательные поля отсутствуют, то запрос завершится ошибкой. Аналогично, если поле указано и в подписанном URL-адресе, и в хранимой политике доступа, запрос завершится ошибкой с кодом состояния 400 (неправильный запрос). Дополнительные сведения о полях, составляющих подписанный URL-адрес, см. в разделе Создание SAS службы.

Вы можете задать не более пяти отдельных политик доступа для таблицы в любое время. Если в тексте запроса передается более пяти политик доступа, служба возвращает код состояния 400 (недопустимый запрос).

Примечание

При создании хранимой политики доступа для таблицы может потребоваться до 30 секунд. В течение этого интервала подписанный URL-адрес, связанный с хранимой политикой доступа, завершится ошибкой с кодом состояния 403 (Запрещено), пока политика доступа не станет активной.

См. также раздел

Определение хранимой политики доступа
Создание и использование подписанного URL-адреса
Делегирование доступа с помощью подписанного URL-адреса
Получение списка управления доступом для таблицы
Авторизация запросов к службе хранилища Azure
Коды состояний и ошибок