{"id":1623,"date":"2020-06-29T13:45:08","date_gmt":"2020-06-29T16:45:08","guid":{"rendered":"https:\/\/thesqltimes.com\/blog\/?p=1623"},"modified":"2020-06-29T18:17:20","modified_gmt":"2020-06-29T21:17:20","slug":"tutorial-block-blob-azure-backuptourl","status":"publish","type":"post","link":"https:\/\/thesqltimes.com\/blog\/2020\/06\/29\/tutorial-block-blob-azure-backuptourl\/","title":{"rendered":"Tutorial: Criando um Block Blob no Azure para um BACKUP TO URL"},"content":{"rendered":"<div class=\"pld-like-dislike-wrap pld-template-1\">\r\n    <div class=\"pld-like-wrap  pld-common-wrap\">\r\n    <a href=\"javascript:void(0)\" class=\"pld-like-trigger pld-like-dislike-trigger  \" title=\"Muito \u00fatil!\" data-post-id=\"1623\" data-trigger-type=\"like\" data-restriction=\"cookie\" data-already-liked=\"0\">\r\n                        <i class=\"fas fa-thumbs-up\"><\/i>\r\n                <\/a>\r\n    <span class=\"pld-like-count-wrap pld-count-wrap\">    <\/span>\r\n<\/div><\/div><span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Tempo de Leitura:<\/span> <span class=\"rt-time\"> 10<\/span> <span class=\"rt-label rt-postfix\">minutos<\/span><\/span><p>O objetivo deste post \u00e9 ajudar o DBA que nunca mexeu com Azure e que precisa implantar Backup pro Azure direto de uma inst\u00e2ncia SQL Server! O objetivo \u00e9 mostrar um passo a passo, explicando alguns pontos sem muitos detalhes, no estilo de um tutorial bem simples!<\/p>\n<p>Para usar comando BACKUP TO URL, voc\u00ea precisa atender os seguintes pr\u00e9-requisitos:<\/p>\n<ul>\n<li>Server 2012 ou superior<\/li>\n<li>Ter uma conta no Azure\n<ul>\n<li>Ter uma Storage Account<\/li>\n<li>Ter um container<\/li>\n<li>Gerar um Sas Token<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>O BACKUP TO URL \u00e9 feito para uma estrutura conhecida como <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/storage\/blobs\/storage-blobs-introduction\">Blob Storage<\/a>. ELa recebe este nome porque \u00e9 como se fosse um sistema de arquivos que vai receendo os dados atrav\u00e9s de chamada de API. A principal diferen\u00e7a \u00e9 que ele n\u00e3o fica no seu computador, e voc\u00ea utiliza chamadas REST (via protocolo HTTPS) para se comunicar com esse storage. No caso do SQL Server, \u00e9 ele quem se preocupa em fazer toda essa comunica\u00e7\u00e3o e para o DBA fica a tarefa de configurar.<\/p>\n<h2>Tipos de Blob<\/h2>\n<p>O Azure <a href=\"https:\/\/docs.microsoft.com\/en-us\/rest\/api\/storageservices\/understanding-block-blobs--append-blobs--and-page-blobs\">suporta dois tipos de Blob<\/a>: Page Blob e Block Blob. O Page Blob \u00e9 organizado em peda\u00e7os de 512 bytes (chamado de p\u00e1gina) e as opera\u00e7\u00f5es de leitura e escritas s\u00e3o feitos em m\u00faltiplos destas p\u00e1ginas. J\u00e1 o block blob \u00e9 organizado em estruturas de tamanho vari\u00e1vel, chamado de blocos e as opera\u00e7\u00f5es s\u00e3o feitas baseadas nestes blocos de tamanho vari\u00e1vel. O Block Blob \u00e9 mais eficiente e permite armazenar mais informa\u00e7\u00f5es do que o Page Blob. O SQL Server escolhe o tipo de Blob dependendo da sintaxe usada. At\u00e9 o SQL Server 2014, somente page blob era poss\u00edvel.<a href=\"https:\/\/techcommunity.microsoft.com\/t5\/datacat\/sql-server-backup-to-url-a-cheat-sheet\/ba-p\/346358\"> Este post<\/a> cont\u00e9m um comparativo dos dois.<\/p>\n<p>Este tutorial ir\u00e1 mostrar o passo a passo focando no Block Blob. Se voc\u00ea quer saber como usar o Page Blob, <a href=\"https:\/\/comunidadesqlserver.wordpress.com\/2018\/09\/26\/backup-database-db-to-url-blob-storage\/\">veja este post da Raiane Flores<\/a>.<\/p>\n<p><span style=\"color: #ff0000;\"><strong>Aten\u00e7\u00e3o: Os recursos que voc\u00ea ir\u00e1 criar durante este tutorial poder\u00e3o incorrer em custos para voc\u00ea. Se est\u00e1 fazendo como um teste, tente optar pelas op\u00e7\u00f5es gratuitas e tenha cautela. Se est\u00e1 fazendo para produ\u00e7\u00e3o, certique-se que voc\u00ea compreendeu os pre\u00e7os e custos envolvidos usando as p\u00e1gina de pre\u00e7os do Azure ou a calculadora. O objetivo deste tutorial \u00e9 mostrar como se cria elo portal e dar orienta\u00e7\u00f5es gerais, mas os custos s\u00e3o por sua pr\u00f3pria conta e risco, pois existem variadas op\u00e7\u00f5es e o ideal depende de cada necessidade.\u00a0<\/strong><\/span><\/p>\n<p>&nbsp;<\/p>\n<h2>Criando uma Conta do Azure<\/h2>\n<p>Antes de tudo, voc\u00ea precisa criar uma conta no Azure. Existem v\u00e1rias maneiras de se fazer isso. A mais simples, r\u00e1pida e barata \u00e9 usar <a href=\"https:\/\/azure.microsoft.com\/en-us\/free\/\">a conta gr\u00e1tis por 12 meses<\/a>. Em qualquer caso, voc\u00ea vai precisar de um cart\u00e3o de cr\u00e9dito, pois o Azure faz algumas valida\u00e7\u00f5es.<\/p>\n<p>Uma conta pode ter uma ou mais assinaturas. As assinaturas est\u00e3o associadas a ofertas.<\/p>\n<p>Uma vez que voc\u00ea criou a conta, voc\u00ea pode <a href=\"https:\/\/portal.azure.com\/\">acessar o Portal do Azure<\/a>, que \u00e9 onde ter\u00e1 acesso a toda as suas contas, assinaturas, recursos, etc. \u00c9 poss\u00edvel usar API REST para fazer todas as a\u00e7\u00f5es que faz no portal (ou talvez,quase todas). Voc\u00ea pode usar powershell e outras linguagens para se interagir com o Azure. Este tutorial ir\u00e1 focar no uso do portal do Azure.<\/p>\n<p>Em cada assinatura voc\u00ea pode criar recursos, e no nosso caso o recurso que iremos criar \u00e9 uma Storage Account, que \u00e9 o recurso que prov\u00ea armazenamento dentro do mundo Azure.<\/p>\n<h3>Resource Groups (Grupos de Recurso)<\/h3>\n<p>Os recursos s\u00e3o agrupados em grupos chamdos <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/azure-resource-manager\/management\/manage-resource-groups-portal\">Resource Groups<\/a>. Geralmente, o portal te d\u00e1 a op\u00e7\u00e3o de escolher um Resource Group existente (ou criar um novo) quando for criar um novo recurso. Essa organiza\u00e7\u00e3o \u00e9 por sua conta, e voc\u00ea escolhe organizar da maneira que for melhor para voc\u00ea.<\/p>\n<h3>Regi\u00f5es<\/h3>\n<p>Os recursos sao criados em uma regi\u00e3o do Azure. Existem diversos <em>datacenters <\/em>espalhados pelo mundo, e voc\u00ea pode escolher em qual local do mundo quer criar. Dependendo da regi\u00e3o, o custo pode ser mais alto ou mais baixo. Geralmente, em ambiente de testes, voc\u00ea escolhe a regi\u00e3o mais barata e a regi\u00e3o que ir\u00e1 apresentar o mehor custo benef\u00edcio para produ\u00e7\u00e3o, considerando a lat\u00eancia, por exemplo. Para mais informa\u00e7\u00f5es sobre regi\u00f5es, consulte <a href=\"https:\/\/azure.microsoft.com\/en-us\/global-infrastructure\/regions\/\">https:\/\/azure.microsoft.com\/en-us\/global-infrastructure\/regions\/<\/a><\/p>\n<hr \/>\n<p>Existem outros conceitos que est\u00e3o envolvidos ao criar recursos no AZure, mas, por enquanto, o que voc\u00ea viu at\u00e9 aqui \u00e9 o suficiente para o foco deste post.<\/p>\n<p>&nbsp;<\/p>\n<h2>Criando uma Storage Account no Portal<\/h2>\n<p>De posse da sua conta do Azure, \u00e9 hora de seguir com o nosso objetivo. Se quiser mais detalhes e conceitos de Storage Account, v\u00e1 em <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/storage\/common\/storage-account-overview\">https:\/\/docs.microsoft.com\/en-us\/azure\/storage\/common\/storage-account-overview<\/a>.<\/p>\n<p>Vamos l\u00e1:<\/p>\n<ol>\n<li>Acesse o portal do Azure com a sua conta<\/li>\n<li>Na barra de buscas, procure por Contas de Armazenamento (Storage Account):\n<p id=\"FFSLZYc\"><img loading=\"lazy\" decoding=\"async\" width=\"534\" height=\"137\" class=\"alignnone size-full wp-image-1626 \" src=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8e726bc9f7.png\" alt=\"\" srcset=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8e726bc9f7.png 534w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8e726bc9f7-300x77.png 300w\" sizes=\"auto, (max-width: 534px) 100vw, 534px\" \/><\/p>\n<\/li>\n<li>Clique em adicionar\n<p id=\"kdWKyhq\"><img loading=\"lazy\" decoding=\"async\" width=\"547\" height=\"285\" class=\"alignnone size-full wp-image-1627 \" src=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8e748aaa40.png\" alt=\"\" srcset=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8e748aaa40.png 547w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8e748aaa40-300x156.png 300w\" sizes=\"auto, (max-width: 547px) 100vw, 547px\" \/><\/p>\n<\/li>\n<li>Preencha as op\u00e7\u00f5es:\n<p id=\"fcyGYXl\"><a href=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8e7a941a0b.png\"><img loading=\"lazy\" decoding=\"async\" class=\" alignnone wp-image-1628\" src=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8e7a941a0b.png\" alt=\"\" width=\"676\" height=\"569\" srcset=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8e7a941a0b.png 938w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8e7a941a0b-300x253.png 300w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8e7a941a0b-768x647.png 768w\" sizes=\"auto, (max-width: 676px) 100vw, 676px\" \/><\/a><\/p>\n<ul>\n<li><strong>Assinatura<\/strong>: Escolha a assinatura desejada<\/li>\n<li><strong>Grupo de Recursos<\/strong>: Escolha o grupo de recursos onde voc\u00ea quer criar a conta<\/li>\n<li><strong>Nome da conta de armazenamento<\/strong>: DEfinda um nome. Esse nome dever\u00e1 ser \u00fanico. A interface ir\u00e1 mostrar os poss\u00edveis erros que podem existir<\/li>\n<li><strong>Localiza\u00e7\u00e3o<\/strong>: Escolha a regi\u00e3o. Isso pode afestar o custo<\/li>\n<li><strong>Desempenho<\/strong>: Standard usa discos magneticos e Premium SSD. Para este tutorial irei usar Standard. Premium custa mais.<\/li>\n<li><strong>Tipo de conta<\/strong>: Escolha StorageV2, que \u00e9 mais recente. As outras op\u00e7\u00f5es podem ser mais baratas, pr\u00e9m pode n\u00e3o suportar algo necess\u00e1rio para o SQL.<\/li>\n<li><strong>Replica\u00e7\u00e3o<\/strong>: Escolha como os dados ser\u00e3o replicados. Isso afeta o custo. Para o exemplo, escolherei o mais b\u00e1sico.<\/li>\n<li><strong>Camada de acesso padr\u00e3o<\/strong>: Escolha a camada de acesso padr\u00e3o.\u00a0 O custo depende do desempenho escolhido. Eu deixaria no principalPara mais informa\u00e7\u00f5es sobre os custos, veja: <a href=\"https:\/\/azure.microsoft.com\/en-us\/pricing\/details\/storage\/\">https:\/\/azure.microsoft.com\/en-us\/pricing\/details\/storage\/<\/a><\/li>\n<\/ul>\n<\/li>\n<li>Clique em avan\u00e7ar\n<p id=\"NwSQFqQ\"><a href=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8e9027fab3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1629 size-full\" src=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8e9027fab3.png\" alt=\"\" width=\"579\" height=\"180\" srcset=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8e9027fab3.png 579w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8e9027fab3-300x93.png 300w\" sizes=\"auto, (max-width: 579px) 100vw, 579px\" \/><\/a><\/p>\n<\/li>\n<li>As pr\u00f3ximas op\u00e7\u00f5es controlam aspectos de conectividade\u00a0 \u00e0 sua conta. Eu deixei nos valores conforme na imagem abaixo, por ser um teste e ser mais simples. Ap\u00f3s escolher, clique em avan\u00e7ar no fim da tela.\n<p id=\"NvNwAUc\"><a href=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8e9933ceec.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1630 size-full\" src=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8e9933ceec.png\" alt=\"\" width=\"1206\" height=\"408\" srcset=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8e9933ceec.png 1206w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8e9933ceec-300x101.png 300w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8e9933ceec-1024x346.png 1024w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8e9933ceec-768x260.png 768w\" sizes=\"auto, (max-width: 1206px) 100vw, 1206px\" \/><\/a><\/p>\n<\/li>\n<li>Na pr\u00f3xima tela, voce pode especificar mais algumas op\u00e7\u00f5es. Eu mantive nessas op\u00e7\u00f5es e cliquei em avan\u00e7ar:\n<p id=\"LakTvln\"><a href=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8ea5ad8144.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1631 size-full\" src=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8ea5ad8144.png\" alt=\"\" width=\"941\" height=\"285\" srcset=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8ea5ad8144.png 941w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8ea5ad8144-300x91.png 300w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8ea5ad8144-768x233.png 768w\" sizes=\"auto, (max-width: 941px) 100vw, 941px\" \/><\/a><\/p>\n<\/li>\n<li>Na tela avan\u00e7ado voc\u00ea pode configurar mais algumas quest\u00f5es. Eu vou manter conforme a tela abaixo:\n<p id=\"tZHEeGv\"><a href=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8eabe9280e.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1632 size-full\" src=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8eabe9280e.png\" alt=\"\" width=\"873\" height=\"502\" srcset=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8eabe9280e.png 873w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8eabe9280e-300x173.png 300w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8eabe9280e-768x442.png 768w\" sizes=\"auto, (max-width: 873px) 100vw, 873px\" \/><\/a><br \/>\n<em>Detalhe: Evite habilitar <strong>Acesso p\u00fablico ao blob<\/strong>, pois isso far\u00e1 com que qualquer pessoa no mundo possa ver o seus dados. Geralmente, essa n\u00e3o \u00e9 sua inten\u00e7\u00e3o com backups do SQL Server.<\/em><br \/>\nQuando terminar, clique em avan\u00e7ar.<\/p>\n<\/li>\n<li>Na tela de Marcas, voc\u00ea pode definir tags. Como eu n\u00e3o quer usar tags, eu deixei vazio e cliquei em &#8220;Avan\u00e7ar&#8221; para ir pra tela de revis\u00e3o:\n<p id=\"zyZyIkQ\"><a href=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8eb9480f90.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1633 size-full\" src=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8eb9480f90.png\" alt=\"\" width=\"843\" height=\"874\" srcset=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8eb9480f90.png 843w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8eb9480f90-289x300.png 289w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8eb9480f90-768x796.png 768w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8eb9480f90-16x16.png 16w\" sizes=\"auto, (max-width: 843px) 100vw, 843px\" \/><\/a><\/p>\n<p>Ap\u00f3s confirmar, eu cliquei em criar, e ent\u00e3o \u00e9 so aguardar a conclus\u00e3o, que geralmente leva menos de 1 minuto.<\/p>\n<p id=\"yTvnJyi\"><a href=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8ebce428e6.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1634 size-full\" src=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8ebce428e6.png\" alt=\"\" width=\"547\" height=\"177\" srcset=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8ebce428e6.png 547w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8ebce428e6-300x97.png 300w\" sizes=\"auto, (max-width: 547px) 100vw, 547px\" \/><\/a><\/p>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<h2>Criando um Container no Portal<\/h2>\n<p>Uma vez que voc\u00ea tem uma Storage Account, \u00e9 hora de criar o container, pois \u00e9 dentro do Container onde voce vai armazenar os seus backups. A Storage Account permite que voc\u00ea\u00a0 crie diversos elementos como <a href=\"https:\/\/thesqltimes.com\/blog\/2020\/02\/09\/azure-file-share-sql-1\/\">File Share.<\/a> O que queremos agora \u00e9 um container:<\/p>\n<ol>\n<li>Acesso o portal com sua conta do Azure<\/li>\n<li>Na barra de busca, digite contas de armazenamento (ou Storage Account, se tiver em ingl\u00eas)<\/li>\n<li>Na pr\u00f3xima tela, clique na Storage Account desejada:\n<p id=\"YTvWexN\"><a href=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8ee8773ce8.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1635 size-full\" src=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8ee8773ce8.png\" alt=\"\" width=\"1366\" height=\"364\" srcset=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8ee8773ce8.png 1366w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8ee8773ce8-300x80.png 300w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8ee8773ce8-1024x273.png 1024w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8ee8773ce8-768x205.png 768w\" sizes=\"auto, (max-width: 1366px) 100vw, 1366px\" \/><\/a><\/p>\n<\/li>\n<li>No menu laterla, va em Cont\u00eaineres:\n<p id=\"LicBfIg\"><a href=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8eecfbee0c.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1636 size-full\" src=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8eecfbee0c.png\" alt=\"\" width=\"482\" height=\"785\" srcset=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8eecfbee0c.png 482w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8eecfbee0c-184x300.png 184w\" sizes=\"auto, (max-width: 482px) 100vw, 482px\" \/><\/a><\/p>\n<\/li>\n<li>Clique no bot\u00e3o de adicionar:\n<p id=\"jISHihP\"><a href=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8eeeb180bf.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1637 size-full\" src=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8eeeb180bf.png\" alt=\"\" width=\"931\" height=\"300\" srcset=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8eeeb180bf.png 931w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8eeeb180bf-300x97.png 300w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8eeeb180bf-768x247.png 768w\" sizes=\"auto, (max-width: 931px) 100vw, 931px\" \/><\/a><\/p>\n<\/li>\n<li>D\u00ea um nome para o container e clique em criar:\n<p id=\"PPaTDuR\"><a href=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8ef1611df2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1638 size-full\" src=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8ef1611df2.png\" alt=\"\" width=\"442\" height=\"386\" srcset=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8ef1611df2.png 442w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8ef1611df2-300x262.png 300w\" sizes=\"auto, (max-width: 442px) 100vw, 442px\" \/><\/a><\/p>\n<\/li>\n<li>Pronto, seu container foi criado:\n<p id=\"ZrhzEuE\"><a href=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8ef34a2f14.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1639 size-full\" src=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8ef34a2f14.png\" alt=\"\" width=\"1031\" height=\"325\" srcset=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8ef34a2f14.png 1031w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8ef34a2f14-300x95.png 300w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8ef34a2f14-1024x323.png 1024w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8ef34a2f14-768x242.png 768w\" sizes=\"auto, (max-width: 1031px) 100vw, 1031px\" \/><\/a><\/p>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<p id=\"ZrhzEuE\">Voc\u00ea pode acessar o container de diversas maneiras (powershell, rest, <a href=\"https:\/\/azure.microsoft.com\/en-us\/features\/storage-explorer\/\">storage explorer<\/a>, etc.). No momento em que este post foi escrito, o portal do Azure disponibiliza uma ferramenta em Preview, para que fa\u00e7a isso diretamente pelo portal. Para isso v\u00e1 no menu lateral,depois em &#8220;Gerenciador de Armazenamento&#8221;. Ent\u00e3o escolha o que voc\u00ea quer ver. Seus blobs ir\u00e3o aparecer ai.<\/p>\n<p id=\"DJSgNFM\"><img loading=\"lazy\" decoding=\"async\" width=\"1051\" height=\"504\" class=\"alignnone size-full wp-image-1652 \" src=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5efa14d5d4c02.png\" alt=\"\" srcset=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5efa14d5d4c02.png 1051w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5efa14d5d4c02-300x144.png 300w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5efa14d5d4c02-1024x491.png 1024w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5efa14d5d4c02-768x368.png 768w\" sizes=\"auto, (max-width: 1051px) 100vw, 1051px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Um Blob \u00e9 um objeto que cont\u00e9m os dados. No mundo dos Blobs n\u00e3o existe o conceito de diret\u00f3rios. \u00c9 como se todos os blobs fossem arquivos sob\u00a0 um mesmo diret\u00f3rio, que \u00e9 o container. O nome destes arquivos podem conter barras, e algumas ferramentas, como as do proprio Azure, acabam exibindo em uma estrutura de arquivos e diret\u00f3rios. Mas saiba que o diret\u00f3rio em si n\u00e3o existe. Por exemplo, os blobs com os nomes <em><strong>dir1\/Arquivo1<\/strong><\/em> e <em><strong>dir1\/Arquivo2<\/strong><\/em> s\u00e3o dois blobs diferentes criados em um mesmo container. Por\u00e9m, o Azure ir\u00e1 exibir assim:<\/p>\n<p id=\"MPbbZNf\"><img loading=\"lazy\" decoding=\"async\" width=\"652\" height=\"144\" class=\"alignnone size-full wp-image-1651 \" src=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5efa14b9c4115.png\" alt=\"\" srcset=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5efa14b9c4115.png 652w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5efa14b9c4115-300x66.png 300w\" sizes=\"auto, (max-width: 652px) 100vw, 652px\" \/><\/p>\n<p>Mas na realidade, n\u00e3o existe diret\u00f3rio algum, s\u00e3o tudo arquivos (o nome correto \u00e9 Blob) que est\u00e3o em um container espec\u00edfico:<\/p>\n<p id=\"QpXkcbk\"><img loading=\"lazy\" decoding=\"async\" width=\"709\" height=\"289\" class=\"alignnone size-full wp-image-1653 \" src=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5efa16abdfff6.png\" alt=\"\" srcset=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5efa16abdfff6.png 709w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5efa16abdfff6-300x122.png 300w\" sizes=\"auto, (max-width: 709px) 100vw, 709px\" \/><\/p>\n<p>&nbsp;<\/p>\n<h2>Gerando uma Shared Access Signature (SAS Token)<\/h2>\n<p>O SAS Token \u00e9 um recurso que permite o Azure autenticar um client (isto \u00e9, alguma aplica\u00e7\u00e3o que esteja tentando ler ou escrever os dados da Storage Account) sem que voc\u00ea precise compartilhar a key da storage account. A Key da storage \u00e9 o que protege seus dados de serem acessados por pessoas n\u00e3o autorizadas. Ou seja, ter acesso ela \u00e9 ter acesso \u00e0 sua Storage Account. O SAS Token reduz essa exposi\u00e7\u00e3o da Account Key. Na API do Azure Storage Account, voc\u00ea pode especificar esse token para autenticar sua aplica\u00e7\u00e3o. Outras linguagens e ferramentas tem suas pr\u00f3prias maneiras de solicitar o token. O SQL Server suporta esse recurso a partir da vers\u00e3o 2016.<\/p>\n<p>Este token \u00e9 uma string que descreve o que se pode acessar, o prazo, o ip e outras informa\u00e7\u00f5es que podem te ajudar a refinar a seguran\u00e7a. E uma parte dessa string \u00e9 uma assinatura gerada com a Account Key, que permite o Azure validar todas essas informa\u00e7\u00f5es. Isso \u00e9 necess\u00e1rio porque o Azure n\u00e3o armazena o token. Voc\u00ea pode gerar v\u00e1rios tokens no portal e distribuir para as aplica\u00e7\u00f5es que precisam acessar. Assim, o Azure pode eficientemente autenticar estes acessos, enquano que permite voc\u00ea controlar a seguran\u00e7a conforme suas necessidades.<\/p>\n<p>Existem v\u00e1rias maneiras de gerar um SAS Token. <a href=\"https:\/\/docs.microsoft.com\/en-us\/rest\/api\/storageservices\/create-account-sas\">Tendo acesso a Account Key e conhecendo a sintaxe voc\u00ea consegue gerar at\u00e9 manualmente<\/a>, mas o objetivo aqui \u00e9 praticidade, ent\u00e3o vou te mostrar como voc\u00ea faz isso no portal:<\/p>\n<ol>\n<li>Acesse a sua Storage Account no portal<\/li>\n<li>No menu lateral, procure por &#8220;Assinatura de Acesso Compartilhado&#8221; ou &#8220;Shared Access Signature&#8221;:\n<p id=\"UZeByOZ\"><img loading=\"lazy\" decoding=\"async\" width=\"467\" height=\"777\" class=\"alignnone size-full wp-image-1642 \" src=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8f3c2a449e.png\" alt=\"\" srcset=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8f3c2a449e.png 467w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8f3c2a449e-180x300.png 180w\" sizes=\"auto, (max-width: 467px) 100vw, 467px\" \/><\/p>\n<\/li>\n<li>Na tela em que abriu, voc\u00ea pode escolher uma s\u00e9rie de op\u00e7\u00f5es, conforme os servi\u00e7os que queira acessar. Eu vou mostrar o m\u00ednimo necess\u00e1rio para que o BACKUP TO URL funcione, e considerando o princ\u00edpio do menor privil\u00e9gio:\n<p id=\"qvsPmLS\"><img loading=\"lazy\" decoding=\"async\" width=\"1153\" height=\"844\" class=\"alignnone size-full wp-image-1646 \" src=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8fb1ad72b1.png\" alt=\"\" srcset=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8fb1ad72b1.png 1153w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8fb1ad72b1-300x220.png 300w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8fb1ad72b1-1024x750.png 1024w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8fb1ad72b1-768x562.png 768w\" sizes=\"auto, (max-width: 1153px) 100vw, 1153px\" \/><\/p>\n<ul>\n<li><strong>Servi\u00e7os permitidos:<\/strong> Eu escohi Blob, pois \u00e9 o \u00fanico servi\u00e7o necess\u00e1rio para o SQL Server<\/li>\n<li><strong>Tipos de recurso permitidos:<\/strong> Para o SQL Server, \u00e9 necess\u00e1rio <strong>Servi\u00e7o<\/strong> e <strong>Objeto<\/strong>, devido as chamadas de API que ele faz<\/li>\n<li>Permiss\u00f5es aceitas:\n<ul>\n<li>Ler: Perimite ler os dados do Blob<\/li>\n<li>Gravar: Permite escrever dados<\/li>\n<li>Lista: Permite listar informa\u00e7\u00f5es (n\u00e3o necessariamente os blobs)<\/li>\n<li><strong>Nota:<\/strong> A permiss\u00e3o de Excluir permite deletar um blob. NO meu caso, vou desmarcar para prevenir que algu\u00e9m possa deletar um backup, por exemplo. Mas neste caso, nem mesmo o SQL Server vai conseguir deletar, em caso de erros durante o processo de backup Isso pode at\u00e9 ser \u00fatil em algumas situa\u00e7\u00f5es, para investiga\u00e7\u00e3o por exemplo. Mas saiba que voc\u00ea pode acabar acumulando backups incompletos.<\/li>\n<\/ul>\n<\/li>\n<li><strong>data\/hora:<\/strong> Voc\u00ea pode escolher uma data de in\u00edcio e fim do token. Ap\u00f3s esse per\u00edodo, ser\u00e1 necess\u00e1rio gerar um novo.<\/li>\n<li><strong>Endere\u00e7o IP:<\/strong> Voc\u00ea pode restriginir o acesso a uma lista de IPs, desde que sejam o IPs que chegam ao Azure. IP interno podem n\u00e3o funcionar.<\/li>\n<li><strong>Protocolos permitidos:<\/strong> Para o SQL Server, ele suporta apenas https, que \u00e9 mais seguro<\/li>\n<li>\u00a0E por fim, especifique com qual das duas chaves da conta a assinatura ser\u00e1 gerada<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>Ent\u00e3o, ao clicar\u00a0 em &#8220;Gerar &#8230;&#8221;, o seu token ser\u00e1 gerado (como \u00e9 um teste, vou deixar todos os valores abertos pra voc\u00ea ver. Mas isso n\u00e3o \u00e9 uma boa pr\u00e1tica). Copie o valor do campo Token SAS pois se voc\u00ea sair dessa tela, n\u00e3o poder\u00e1 recuperar novamente:<\/p>\n<p id=\"FogfOtR\"><img loading=\"lazy\" decoding=\"async\" width=\"1932\" height=\"205\" class=\"alignnone size-full wp-image-1647 \" src=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8fd443b750.png\" alt=\"\" srcset=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8fd443b750.png 1932w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8fd443b750-300x32.png 300w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8fd443b750-1024x109.png 1024w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8fd443b750-768x81.png 768w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef8fd443b750-1536x163.png 1536w\" sizes=\"auto, (max-width: 1932px) 100vw, 1932px\" \/><\/p>\n<h2>Usando o SAS Token no SQL Server<\/h2>\n<p>Neste ponto, voc\u00ea tem tudo o que precisa para fazer o BACKUP para sua Storage Account.<\/p>\n<p>Primeiro, voc\u00ea precisa informar \u00e0 sua inst\u00e2ncia SQL qual \u00e9 o token usado e qual a URL do seu container. ISso \u00e9 feito com o comando <a href=\"https:\/\/docs.microsoft.com\/en-us\/sql\/t-sql\/statements\/create-credential-transact-sql?view=sql-server-ver15\">CREATE CREDENTIAL<\/a> (que n\u00e3o \u00e9 um comando exclusivo para Azure, e sim um recurso que existe h\u00e1 anos no SQL Server para criar identidades e senhas externas):<\/p>\n<pre class=\"lang:tsql decode:true\" title=\"Criando o SAS Token no SQL Server\">CREATE CREDENTIAL [https:\/\/tutorialthesqltimes.blob.core.windows.net\/backupsql]\nWITH\n    IDENTITY = 'SHARED ACCESS SIGNATURE'\n    ,SECRET = 'sv=2019-10-10&amp;ss=b&amp;srt=so&amp;sp=rwlx&amp;se=2022-06-29T03:47:18Z&amp;st=2020-06-28T19:47:18Z&amp;spr=https&amp;sig=m6%2BlG9R8DPKqRv6T7oXrySuAq8rp1aSOkPB4FYAJpSc%3D'<\/pre>\n<p>O nome da credencial \u00e9 a URL do seu container, que geralmente \u00e9 o seguinte formato:<\/p>\n<ul>\n<li>https:\/\/NOMESTORAGEACCOUNT.blob.core.windows.net\/NOMECONTAINER<\/li>\n<\/ul>\n<p>Como voc\u00ea viu na imagem anterior, ao criar o SAS Token, ele te mostra a URL, bastando adicionar o container desejado. Note que voc\u00ea n\u00e3o gerou um SAS Token associado a um container espec\u00edfico, o que significa que ele serve para qualquer container, desde que as permiss\u00f5es estejam adequadas.<\/p>\n<p>A op\u00e7\u00e3o \u00e9 IDENTITY deve possuir\u00a0 valor fixo <strong>SHARED ACCESS SIGNATURE. <\/strong>O SQL aceita criar com um valor diferente, mas isso \u00e9 validado na hora de executar o comando BACKUP TO URL e n\u00e3o tiver exatamente este valor, voc\u00ea ir\u00e1 receber um erro gen\u00e9rico de falha.<\/p>\n<p>Em SECRET, voc\u00ea coloca o Token que voc\u00ea copiou (<span style=\"color: #ff0000;\"><strong>sem aquela interroga\u00e7\u00e3o inicial<\/strong><\/span>).<\/p>\n<p>E ent\u00e3o, voc\u00ea executar o comando de backup dessa maneira:<\/p>\n<pre class=\"lang:tsql decode:true \" title=\"Backup to URL (model)\">backup database model to url = 'https:\/\/tutorialthesqltimes.blob.core.windows.net\/backupsql\/model.bak' with init,format,compression\n<\/pre>\n<p id=\"qLCquuu\"><img loading=\"lazy\" decoding=\"async\" width=\"1676\" height=\"228\" class=\"alignnone size-full wp-image-1648 \" src=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef9013e661d5.png\" alt=\"\" srcset=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef9013e661d5.png 1676w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef9013e661d5-300x41.png 300w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef9013e661d5-1024x139.png 1024w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef9013e661d5-768x104.png 768w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5ef9013e661d5-1536x209.png 1536w\" sizes=\"auto, (max-width: 1676px) 100vw, 1676px\" \/><\/p>\n<p>Voc\u00ea pode especificar separar em &#8220;diret\u00f3rios&#8221; apenas colocando as barras no nome do blob. Mas lembre-se do que expliquei: n\u00e3o existe diret\u00f3rios de verdade.<\/p>\n<p id=\"DqmInBU\"><a href=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5efa197fe89c6.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1654 size-full\" src=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5efa197fe89c6.png\" alt=\"\" width=\"1598\" height=\"227\" srcset=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5efa197fe89c6.png 1598w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5efa197fe89c6-300x43.png 300w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5efa197fe89c6-1024x145.png 1024w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5efa197fe89c6-768x109.png 768w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5efa197fe89c6-1536x218.png 1536w\" sizes=\"auto, (max-width: 1598px) 100vw, 1598px\" \/><\/a><\/p>\n<p>No Azure, voc\u00ea ver\u00e1 assim:<\/p>\n<p id=\"OAQraCr\"><a href=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5efa19dba0e4e.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1656 size-full\" src=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5efa19dba0e4e.png\" alt=\"\" width=\"542\" height=\"165\" srcset=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5efa19dba0e4e.png 542w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5efa19dba0e4e-300x91.png 300w\" sizes=\"auto, (max-width: 542px) 100vw, 542px\" \/><\/a><\/p>\n<p>Mas, na realidade, \u00e9 assim que est\u00e1 no Azure:<\/p>\n<p id=\"gZhTgCx\"><a href=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5efa19a91eefc.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1655 size-full\" src=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5efa19a91eefc.png\" alt=\"\" width=\"1137\" height=\"249\" srcset=\"https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5efa19a91eefc.png 1137w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5efa19a91eefc-300x66.png 300w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5efa19a91eefc-1024x224.png 1024w, https:\/\/thesqltimes.com\/blog\/wp-content\/uploads\/2020\/06\/img_5efa19a91eefc-768x168.png 768w\" sizes=\"auto, (max-width: 1137px) 100vw, 1137px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<hr \/>\n<p>&nbsp;<\/p>\n<p>E assim, encerramos este simples tutorial mostrando como voc\u00ea, DBA pai de primeira viagem no mundo cloud, pode fazer BACKUP TO URL do seu SQL Server pro Azure!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>O objetivo deste post \u00e9 ajudar o DBA que nunca mexeu com Azure e que precisa implantar Backup pro Azure direto de uma inst\u00e2ncia SQL Server! O objetivo \u00e9 mostrar um passo a passo, explicando alguns pontos sem muitos detalhes, no estilo de um tutorial bem simples! Para usar comando BACKUP TO URL, voc\u00ea precisa&hellip;&nbsp;<a href=\"https:\/\/thesqltimes.com\/blog\/2020\/06\/29\/tutorial-block-blob-azure-backuptourl\/\" rel=\"bookmark\"><span class=\"screen-reader-text\">Tutorial: Criando um Block Blob no Azure para um BACKUP TO URL<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":1653,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","footnotes":""},"categories":[8,277,278,7],"tags":[355,280,174,358,356,73,354,357,349],"series":[],"class_list":["post-1623","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administracao","category-azure","category-azure-storage","category-sql-server","tag-account","tag-azure","tag-backup","tag-container","tag-portal","tag-sql-server","tag-storage","tag-tutorial","tag-url"],"_links":{"self":[{"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/posts\/1623","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/comments?post=1623"}],"version-history":[{"count":6,"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/posts\/1623\/revisions"}],"predecessor-version":[{"id":1661,"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/posts\/1623\/revisions\/1661"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/media\/1653"}],"wp:attachment":[{"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/media?parent=1623"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/categories?post=1623"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/tags?post=1623"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/series?post=1623"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}