Definir ACL de Tabela

A Set Table ACL operação define as políticas de acesso armazenado para a tabela que podem ser utilizadas com assinaturas de acesso partilhado. Para obter mais informações, veja Definir uma política de acesso armazenado.

Nota

A Set Table ACL operação está disponível na versão 2012-02-12 e posterior.

Nota

Uma lista de controlo de acesso (ACL) é uma lista de entradas de controlo de acesso (ACEs). Cada ACE numa ACL identifica um administrador e especifica os direitos de acesso permitidos, negados ou auditados para esse administrador. Para obter mais informações, veja Listas de controlo de acesso.

Pedir

Pode construir o pedido da Set Table ACL seguinte forma. Recomendamos HTTPS. Substitua myaccount pelo nome da sua conta de armazenamento.

Método URI do pedido Versão HTTP
PUT https://myaccount.table.core.windows.net/mytable?comp=acl HTTP/1.1

URI do serviço de armazenamento emulado

Quando estiver a fazer um pedido contra o serviço de armazenamento emulado, especifique o nome do anfitrião do emulador e a porta do Armazenamento de Tabelas do Azure como 127.0.0.1:10002. Em seguida, adicione o nome da conta de armazenamento emulada.

Método URI do pedido Versão HTTP
PUT http://127.0.0.1:10002/devstoreaccount1/mytable?comp=acl HTTP/1.1

Para obter mais informações, veja Utilizar o emulador do Azurite para o desenvolvimento local do Armazenamento do Azure.

Parâmetros URI

Pode especificar os seguintes parâmetros adicionais no URI do pedido:

Parâmetro Description
timeout Opcional. Expresso em segundos. Para obter mais informações, veja Definir tempos limite para operações de Armazenamento de Tabelas.

Cabeçalhos do pedido

A tabela seguinte descreve os cabeçalhos de pedido obrigatórios e opcionais:

Cabeçalho do pedido Description
Authorization Obrigatório. Especifica o esquema de autorização, o nome da conta e a assinatura. Para obter mais informações, veja Autorizar pedidos para o Armazenamento do Azure.
Date ou x-ms-date Obrigatório. Especifica a Hora Universal Coordenada (UTC) do pedido. Para obter mais informações, veja Autorizar pedidos para o Armazenamento do Azure.
x-ms-version Opcional. Especifica a versão da operação a utilizar para este pedido. Para obter mais informações, veja Controlo de versões dos serviços de Armazenamento do Azure.
x-ms-client-request-id Opcional. Fornece um valor opaco gerado pelo cliente com um limite de carateres de 1 kibibyte (KiB) que é registado nos registos Análise de Armazenamento quando o registo está configurado. Recomendamos vivamente que utilize este cabeçalho para correlacionar as atividades do lado do cliente com os pedidos que o servidor recebe.

Corpo do pedido

Para especificar uma política de acesso armazenada, forneça um identificador exclusivo e uma política de acesso no corpo do pedido para a Set Table ACL operação.

O SignedIdentifier elemento inclui o identificador exclusivo, conforme especificado no Id elemento. SignedIdentifier também inclui os detalhes da política de acesso, conforme especificado no AccessPolicy elemento. O comprimento máximo do identificador exclusivo é de 64 carateres.

Os Start campos e Expiry têm de ser expressos como horas UTC e têm de cumprir um formato ISO 8061 válido. Os formatos ISO 8061 suportados incluem:

  • YYYY-MM-DD

  • YYYY-MM-DDThh:mmTZD

  • YYYY-MM-DDThh:mm:ssTZD

  • YYYY-MM-DDThh:mm:ss.ffffffTZD

Para a parte de data destes formatos, YYYY é uma representação de quatro dígitos, MM é uma representação de dois dígitos por mês e DD é uma representação diária de dois dígitos. Para a parte do tempo, hh é a representação de hora na notação de 24 horas, mm é a representação ss de dois dígitos, é a segunda representação de dois dígitos e ffffff é a representação de milissegundos de seis dígitos. O designador T de hora separa as partes de data e hora da cadeia. O designador de TZD fuso horário especifica um fuso horário.

<?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>  
  

Pedido de exemplo

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>  
  

Resposta

A resposta inclui um código de estado HTTP e um conjunto de cabeçalhos de resposta.

Código de estado

Uma operação bem-sucedida devolve o código de estado 204 (Sem Conteúdo).

Para obter informações sobre códigos de estado, veja Códigos de estado e de erro.

Cabeçalhos de resposta

A resposta para esta operação inclui os seguintes cabeçalhos. A resposta também pode incluir cabeçalhos HTTP padrão adicionais. Todos os cabeçalhos padrão estão em conformidade com a especificação do protocolo HTTP/1.1.

Cabeçalho de resposta Descrição
x-ms-request-id Identifica exclusivamente o pedido que foi feito. Também pode utilizá-lo para resolver o pedido. Para obter mais informações, veja Resolver problemas de operações da API.
x-ms-version Indica a versão do Armazenamento de Tabelas que é utilizada para executar o pedido. Este cabeçalho é devolvido para pedidos feitos na versão 2009-09-19 e posterior.
Date Um valor de data/hora UTC que indica a hora em que o serviço enviou a resposta.
x-ms-client-request-id Pode ser utilizado para resolver problemas de pedidos e respostas correspondentes. O valor deste cabeçalho é igual ao valor do x-ms-client-request-id cabeçalho, se estiver presente no pedido e o valor for, no máximo, 1024 carateres ASCII visíveis. Se o x-ms-client-request-id cabeçalho não estiver presente no pedido, este cabeçalho não estará presente na resposta.

Resposta de amostra

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  
  

Autorização

Apenas o proprietário da conta pode chamar esta operação.

Observações

Apenas o proprietário da conta pode aceder a recursos numa tabela específica, a menos que o proprietário tenha emitido uma assinatura de acesso partilhado para um recurso dentro da tabela.

Quando define permissões para uma tabela, as permissões existentes são substituídas. Para atualizar as permissões da tabela, chame Obter ACL de Tabela para obter todas as políticas de acesso associadas à tabela. Modifique a política de acesso que pretende alterar e, em seguida, chame Set Table ACL com o conjunto completo de dados para efetuar a atualização.

Estabelecer políticas de acesso armazenado

Uma política de acesso armazenado pode especificar a hora de início, a hora de expiração e as permissões das assinaturas de acesso partilhado às quais está associada. Consoante a forma como pretende controlar o acesso à sua partilha ou recurso de ficheiro, pode:

  • Especifique todos estes parâmetros na política de acesso armazenado e omita-os do URL para a assinatura de acesso partilhado. Ao fazê-lo, permite-lhe modificar o comportamento da assinatura associada ou revogá-lo em qualquer altura.
  • Especifique um ou mais dos parâmetros da política de acesso na política de acesso armazenado e especifique os outros parâmetros no URL.
  • Especifique todos os parâmetros no URL. Neste caso, pode utilizar a política de acesso armazenado para revogar a assinatura, mas não para modificar o respetivo comportamento.

Para obter mais informações sobre como estabelecer políticas de acesso, veja Definir uma política de acesso armazenado.

Em conjunto, a assinatura de acesso partilhado e a política de acesso armazenado têm de incluir todos os campos necessários para autorizar a assinatura. Se existirem campos necessários em falta, o pedido falhará. Da mesma forma, se for especificado um campo no URL de assinatura de acesso partilhado e na política de acesso armazenado, o pedido falhará com o código de estado 400 (Pedido Incorreto). Para obter mais informações sobre os campos que compõem uma assinatura de acesso partilhado, consulte Criar uma SAS de serviço.

Pode definir um máximo de cinco políticas de acesso separadas para uma tabela em qualquer altura. Se forem transmitidas mais de cinco políticas de acesso no corpo do pedido, o serviço devolve o código de estado 400 (Pedido Incorreto).

Nota

Quando estabelece uma política de acesso armazenada numa tabela, pode demorar até 30 segundos a entrar em vigor. Durante este intervalo, uma assinatura de acesso partilhado associada à política de acesso armazenado falhará com o código de estado 403 (Proibido), até que a política de acesso fique ativa.

Ver também

Definir uma política de acesso armazenada
Criar e utilizar uma assinatura de acesso partilhado
Delegar o acesso com uma assinatura de acesso partilhado
Obter ACL de Tabela
Autorizar pedidos para o Armazenamento do Azure
Códigos de estado e de erro