Definir ACL da tabela
A Set Table ACL
operação define as políticas de acesso armazenadas para a tabela que podem ser usadas com assinaturas de acesso compartilhado. Para obter mais informações, consulte Definir uma política de acesso armazenada.
Observação
A operação Set Table ACL
está disponível na versão 2012-02-12 e posterior.
Observação
Uma ACL ( lista de controle de acesso ) é uma lista de ACEs ( entradas de controle de acesso ). Cada ACE em uma ACL identifica um objeto de confiança e especifica os direitos de acesso permitidos, negados ou auditados para esse objeto de confiança. Para obter mais informações, consulte Listas de controle de acesso.
Solicitação
Você pode construir a solicitação da Set Table ACL
seguinte maneira. Recomendamos HTTPS. Substitua myaccount pelo nome da sua conta de armazenamento.
Método | URI da solicitação | Versão HTTP |
---|---|---|
PUT |
https://myaccount.table.core.windows.net/mytable?comp=acl |
HTTP/1.1 |
URI do serviço de armazenamento emulado
Ao fazer uma solicitação no serviço de armazenamento emulado, especifique o nome do host 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 da solicitação | Versão HTTP |
---|---|---|
PUT |
http://127.0.0.1:10002/devstoreaccount1/mytable?comp=acl |
HTTP/1.1 |
Para obter mais informações, consulte Usar o emulador Azurite para desenvolvimento local do armazenamento do Azure.
Parâmetros do URI
Você pode especificar os seguintes parâmetros adicionais no URI da solicitação:
Parâmetro | Descrição |
---|---|
timeout |
Opcional. Expresso em segundos. Para obter mais informações, consulte Definir tempos limite para operações de Armazenamento de Tabelas. |
Cabeçalhos da solicitação
A tabela a seguir descreve os cabeçalhos de solicitação obrigatórios e opcionais:
Cabeçalho da solicitação | Descrição |
---|---|
Authorization |
Obrigatórios. Especifica o esquema de autorização, o nome da conta e a assinatura. Para saber mais, confira Autorizar solicitações para o Armazenamento do Azure. |
Date ou x-ms-date |
Obrigatórios. Especifica o UTC (Tempo Universal Coordenado) para a solicitação. Para saber mais, confira Autorizar solicitações para o Armazenamento do Azure. |
x-ms-version |
Opcional. Especifica a versão da operação a ser usada para esta solicitação. Para obter mais informações, consulte Controle de versão para os Serviços de Armazenamento do Azure. |
x-ms-client-request-id |
Opcional. Fornece um valor opaco gerado pelo cliente com um limite de caracteres KiB (1 kibibyte) que é registrado nos logs de Análise de Armazenamento quando o registro em log é configurado. É altamente recomendável que você use esse cabeçalho para correlacionar atividades do lado do cliente com solicitações recebidas pelo servidor. |
Corpo da solicitação
Para especificar uma política de acesso armazenada, forneça um identificador exclusivo e uma política de acesso no corpo da solicitação da operação Set Table ACL
.
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 é 64 caracteres.
Os campos Start
e Expiry
devem ser expressos como hora UTC e devem atender a um formato ISO 8061 válido. Os formatos ISO 8061 com suporte incluem:
YYYY-MM-DD
YYYY-MM-DDThh:mmTZD
YYYY-MM-DDThh:mm:ssTZD
YYYY-MM-DDThh:mm:ss.ffffffTZD
Para a parte de data desses formatos, YYYY
é uma representação de ano com quatro dígitos, MM
é uma representação de mês com dois dígitos e DD
é uma representação de dia com dois dígitos. Na parte de hora, hh
é a representação de hora na notação de 24 horas, mm
é a representação de minuto com dois dígitos, ss
é a representação de segundos com dois dígitos e ffffff
é a representação de milissegundo com seis dígitos. O designador T
de hora separa as partes de data e hora da cadeia de caracteres. O designador TZD
de 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>
Solicitação 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 status HTTP e um conjunto de cabeçalhos de resposta.
Código de status
Uma operação bem-sucedida retorna o código de status 204 (Sem conteúdo).
Para obter informações sobre códigos de status, consulte Códigos de status e de erro.
Cabeçalhos de resposta
A resposta para esta operação inclui os cabeçalhos a seguir. 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 a solicitação que foi feita. Você também pode usá-lo para solucionar problemas da solicitação. Para obter mais informações, consulte Solucionar problemas de operações de API. |
x-ms-version |
Indica a versão do Armazenamento de Tabelas usada para executar a solicitação. Esse cabeçalho é retornado para solicitações feitas na versão 2009-09-19 e mais recente. |
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 usado para solucionar problemas de solicitações e respostas correspondentes. O valor desse cabeçalho será igual ao valor do x-ms-client-request-id cabeçalho, se ele estiver presente na solicitação e o valor for no máximo 1.024 caracteres ASCII visíveis. Se o x-ms-client-request-id cabeçalho não estiver presente na solicitação, esse cabeçalho não estará presente na resposta. |
Resposta de exemplo
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
Somente o proprietário da conta pode chamar essa operação.
Comentários
Somente o proprietário da conta pode acessar recursos em uma tabela específica, a menos que o proprietário tenha emitido uma assinatura de acesso compartilhado para um recurso dentro da tabela.
Quando você 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 buscar todas as políticas de acesso associadas à tabela. Modifique a política de acesso que você deseja alterar e, em seguida, chame Set Table ACL
com o conjunto completo de dados para executar a atualização.
Estabelecendo políticas de acesso armazenadas
Uma política de acesso armazenada pode especificar a hora de início, a hora de expiração e as permissões para as assinaturas de acesso compartilhado às quais está associada. Dependendo de como você deseja controlar o acesso ao seu recurso de compartilhamento ou arquivo, você pode:
- Especifique todos esses parâmetros dentro da política de acesso armazenada e omita-os da URL para a assinatura de acesso compartilhado. Isso permite que você modifique o comportamento da assinatura associada ou revogue-o a qualquer momento.
- Especifique um ou mais dos parâmetros de política de acesso dentro da política de acesso armazenada e especifique os outros parâmetros na URL.
- Especifique todos os parâmetros na URL. Nesse caso, você pode usar a política de acesso armazenada para revogar a assinatura, mas não para modificar seu comportamento.
Para obter mais informações sobre como estabelecer políticas de acesso, consulte Definir uma política de acesso armazenada.
Juntos, a assinatura de acesso compartilhado e a política de acesso armazenada devem incluir todos os campos necessários para autorizar a assinatura. Se qualquer campo obrigatório estiver ausente, a solicitação falhará. Da mesma forma, se um campo for especificado na URL da assinatura de acesso compartilhado e na política de acesso armazenada, ocorrerá uma falha na solicitação com o código de status 400 (Solicitação Incorreta). Para obter mais informações sobre os campos que compõem uma assinatura de acesso compartilhado, consulte Criar uma SAS de serviço.
Você pode definir no máximo cinco políticas de acesso separadas para uma tabela a qualquer momento. Se mais de cinco políticas de acesso forem passadas no corpo da solicitação, o serviço retornará status código 400 (Solicitação Incorreta).
Observação
Quando você estabelece uma política de acesso armazenada em uma tabela, pode levar até 30 segundos para entrar em vigor. Durante esse intervalo, uma assinatura de acesso compartilhado associada à política de acesso armazenada falhará com status código 403 (Proibido), até que a política de acesso fique ativa.
Confira também
Definir uma política de acesso armazenada
Criar e usar uma assinatura de acesso compartilhado
Delegar acesso com uma assinatura de acesso compartilhado
Obter ACL da tabela
Autorizar solicitações para o Armazenamento do Azure
Status e códigos de erro