{"id":726,"date":"2015-02-26T13:57:32","date_gmt":"2015-02-26T13:57:32","guid":{"rendered":"http:\/\/eurotigroup.com.br\/blog\/?p=726"},"modified":"2015-02-26T14:00:04","modified_gmt":"2015-02-26T14:00:04","slug":"gerenciando-usuarios-e-controle-de-acessos-do-mysql","status":"publish","type":"post","link":"https:\/\/eurotigroup.com.br\/blog\/gerenciando-usuarios-e-controle-de-acessos-do-mysql.html","title":{"rendered":"Gerenciando Usu\u00e1rios e Controle de Acessos do MySQL"},"content":{"rendered":"<p>Veja neste artigo uma descri\u00e7\u00e3o dos mecanismos de controles de acessos do MySQL, uma apresenta\u00e7\u00e3o das rotinas para cria\u00e7\u00e3o de usu\u00e1rios e gerenciamento de seus privil\u00e9gios.<\/p>\n<p>&nbsp;<\/p>\n<p class=\"style5\"><strong><span style=\"font-family: Verdana;\"><span style=\"font-size: x-large;\"><span class=\"style71\">Gerenciamento de Usu\u00e1rios e Controle de Acessos<\/span> do MySQL<\/span><\/span><\/strong><\/p>\n<p class=\"style1\"><span style=\"font-family: Verdana; font-size: small;\">O objetivo principal deste artigo \u00e9 descrever os mecanismos de controles de acessos do MySQL, bem como apresentar as rotinas para cria\u00e7\u00e3o de usu\u00e1rios e gerenciamento de seus privil\u00e9gios.<\/span><\/p>\n<p class=\"style1\"><span style=\"font-family: Verdana; font-size: small;\">O MySQL possui um mecanismo que permite limitar o acesso de um usu\u00e1rio a apenas um banco, tabela ou coluna, al\u00e9m de poder controlar o acesso de acordo com o host a partir de onde est\u00e1 sendo feita a conex\u00e3o com o servidor. Pode-se ainda, conceder privil\u00e9gios diferentes para cada host de onde o usu\u00e1rio possa estabelecer a conex\u00e3o. Assim, \u00e9 poss\u00edvel que determinados comandos possam ser executados somente quando o usu\u00e1rio estiver em um host espec\u00edfico, por exemplo o mesmo host do servidor MySQL (localhost).<\/span><\/p>\n<p class=\"style1\"><span style=\"font-family: Verdana; font-size: small;\">O MySQL armazena as informa\u00e7\u00f5es dos seus usu\u00e1rios em 4 tabelas que est\u00e3o localizadas no banco de dados <strong>mysql<\/strong>. Estas tabelas s\u00e3o a <strong>user<\/strong>, <strong>db<\/strong>, <strong>tables_priv<\/strong> e <strong>columns_priv<\/strong>. A tabela user armazena as informa\u00e7\u00f5es de todos os usu\u00e1rios do banco e os privil\u00e9gios globais deste usu\u00e1rio. A tabela db armazena os privil\u00e9gios dos usu\u00e1rios espec\u00edficos de um banco de dados. Finalmente, as tabelas tables_priv e columns_priv armazenam os privil\u00e9gios associados a tabelas e colunas, respectivamente. Como estas tabelas possuem as informa\u00e7\u00f5es dos usu\u00e1rios, bem como os seus privil\u00e9gios, recomenda-se que apenas o administrador do banco de dados tenha acesso ao banco mysql (usu\u00e1rio <strong>root<\/strong>).<\/span><\/p>\n<p class=\"style1\"><span style=\"font-family: Verdana; font-size: small;\">Para criar usu\u00e1rios e conceder privil\u00e9gios no MySQL, utiliza-se o comando GRANT. Ao executar um comando GRANT para um usu\u00e1rio que n\u00e3o existe, o mesmo ser\u00e1 criado. Um GRANT para um usu\u00e1rio j\u00e1 existente adicionar\u00e1 os novos privil\u00e9gios aos j\u00e1 concedidos anteriormente. A sint\u00e1xe resumida do comando GRANT \u00e9 exibida a seguir:<\/span><\/p>\n<p class=\"style1style8\"><span style=\"font-size: small;\"><span style=\"font-family: Verdana;\"><strong>GRANT priv [(<\/strong><em><b>colunas<\/b><\/em><strong>)] [, priv [(<\/strong><em><b>colunas<\/b><\/em><strong>)]] &#8230;<\/strong><\/span><\/span><b><br \/>\n<\/b><span style=\"font-size: small;\"><span style=\"font-family: Verdana;\"><strong><span lang=\"EN-US\">ON {*.* | db.* | <\/span><\/strong><em><b><span lang=\"EN-US\">db.tabela<\/span><\/b><\/em><strong><span lang=\"EN-US\">}<\/span><\/strong><\/span><\/span><b><span lang=\"EN-US\"><br \/>\n<span style=\"font-size: small;\"><span style=\"font-family: Verdana;\"><strong>TO <\/strong><em>usuario<\/em><strong> [IDENTIFIED BY &#8216;<\/strong><em>senha<\/em><strong>&#8216;]<\/strong><br \/>\n<strong>[, <\/strong><em>usuario<\/em><strong> [IDENTIFIED BY &#8216;senha&#8217;]] &#8230;<\/strong><br \/>\n<strong>[WITH [GRANT OPTION |<\/strong><br \/>\n<strong>MAX_QUERIES_PER_HOUR <\/strong><em>contador<\/em><strong> |<\/strong><br \/>\n<strong>MAX_UPDATES_PER_HOUR <\/strong><em>contador<\/em><strong> |<\/strong><br \/>\n<strong>MAX_CONNECTIONS_PER_HOUR <\/strong><em>contador<\/em><strong>]]<\/strong><\/span><\/span><\/span><\/b><\/p>\n<p class=\"style1\"><span style=\"font-family: Verdana; font-size: small;\">No comando acima os <strong>[ ]<\/strong> indicam que o comando \u00e9 opcional. O primeiro item a ser informado \u00e9(s\u00e3o) o(s) privil\u00e9gio(s) a ser(em) concedido(s) ao(s) usu\u00e1rio(s). A lista de privil\u00e9gios existentes no MySQL \u00e9 descrita abaixo<\/span>:<\/p>\n<table style=\"height: 1778px;\" width=\"547\">\n<tbody>\n<tr>\n<td width=\"119\"><strong>Privil\u00e9gio<\/strong><\/td>\n<td width=\"418\">Descri\u00e7\u00e3o<\/td>\n<\/tr>\n<tr>\n<td><strong>ALL [PRIVILEGES]<\/strong><\/td>\n<td>Todos os privil\u00e9gios exceto <strong>GRANT OPTION<\/strong><\/td>\n<\/tr>\n<tr>\n<td><strong>ALTER<\/strong><\/td>\n<td>Permite executar<strong> ALTER TABLE<\/strong><\/td>\n<\/tr>\n<tr>\n<td><strong>CREATE<\/strong><\/td>\n<td>Permite executar <strong>CREATE TABLE<\/strong><\/td>\n<\/tr>\n<tr>\n<td><strong>CREATE TEMPORARY TABLES<\/strong><\/td>\n<td>Permite executar <strong>CREATE TEMPORARY TABLE<\/strong><\/td>\n<\/tr>\n<tr>\n<td><strong>DELETE<\/strong><\/td>\n<td>Permite executar <strong>DELETE<\/strong><\/td>\n<\/tr>\n<tr>\n<td><strong>DROP<\/strong><\/td>\n<td>Permite executar <strong>DROP TABLE<\/strong><\/td>\n<\/tr>\n<tr>\n<td><strong>EXECUTE<\/strong><\/td>\n<td>Permite executar stored procedures (MySQL 5.0)<\/td>\n<\/tr>\n<tr>\n<td><strong>FILE<\/strong><\/td>\n<td>Permite executar <strong>SELECT &#8230; INTO OUTFILE<\/strong> e <strong>LOAD DATA INFILE<\/strong><\/td>\n<\/tr>\n<tr>\n<td><strong>INDEX<\/strong><\/td>\n<td>Permite executar <strong>CREATE INDEX<\/strong> e <strong>DROP INDEX<\/strong><\/td>\n<\/tr>\n<tr>\n<td><strong>INSERT<\/strong><\/td>\n<td>Permite executar <strong>INSERT<\/strong><\/td>\n<\/tr>\n<tr>\n<td><strong>LOCK TABLES<\/strong><\/td>\n<td>Permite executar <strong>LOCK TABLES<\/strong> em tabelas que voc\u00ea tenha o privil\u00e9gio <strong>SELECT<\/strong><\/td>\n<\/tr>\n<tr>\n<td><strong>PROCESS<\/strong><\/td>\n<td>Permite executar <strong>SHOW FULL PROCESSLIST<\/strong><\/td>\n<\/tr>\n<tr>\n<td><strong>REFERENCES<\/strong><\/td>\n<td>Ainda n\u00e3o est\u00e1 implementado<\/td>\n<\/tr>\n<tr>\n<td><strong>RELOAD<\/strong><\/td>\n<td>Permite executar <strong>FLUSH<\/strong><\/td>\n<\/tr>\n<tr>\n<td><strong>REPLICATION CLIENT<\/strong><\/td>\n<td>Permite ao usu\u00e1rio obter a localiza\u00e7\u00e3o do Master ou Slave<\/td>\n<\/tr>\n<tr>\n<td><strong>REPLICATION SLAVE<\/strong><\/td>\n<td>Necess\u00e1rio para a replica\u00e7\u00e3o Slave (leitura dos eventos do log bin\u00e1rio do Master)<\/td>\n<\/tr>\n<tr>\n<td><strong>SELECT<\/strong><\/td>\n<td>Permite executar <strong>SELECT<\/strong><\/td>\n<\/tr>\n<tr>\n<td><strong>SHOW DATABASES<\/strong><\/td>\n<td>exibe todos os bancos de dados<\/td>\n<\/tr>\n<tr>\n<td><strong>SHUTDOWN<\/strong><\/td>\n<td>Permite executar mysqladmin shutdown<\/td>\n<\/tr>\n<tr>\n<td><strong>SUPER<\/strong><\/td>\n<td>Permite executar <strong>CHANGE MASTER<\/strong>, <strong>KILL<\/strong> , <strong>PURGE MASTER LOGS<\/strong> e <strong>SET GLOBAL<\/strong>. Permite conectar-se ao servidor uma vez, mesmo que o max_connections tenha sido atingido<\/td>\n<\/tr>\n<tr>\n<td><strong>UPDATE<\/strong><\/td>\n<td>Permite executar <strong>UPDATE<\/strong><\/td>\n<\/tr>\n<tr>\n<td><strong>USAGE<\/strong><\/td>\n<td>Sin\u00f4nimo para &#8220;no privileges&#8221;<\/td>\n<\/tr>\n<tr>\n<td><strong>GRANT OPTION<\/strong><\/td>\n<td>Permite ao usu\u00e1rio repassar os seus privil\u00e9gios<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p class=\"style1\"><span style=\"font-family: Verdana; font-size: small;\">Uma vez informados os privil\u00e9gios do usu\u00e1rio, voc\u00ea dever\u00e1 indicar o n\u00edvel ao qual o privil\u00e9gio se aplica, sendo poss\u00edvel especificar tr\u00eas n\u00edveis:<\/span><\/p>\n<table width=\"450\">\n<tbody>\n<tr>\n<td width=\"53\"><strong>*.*<\/strong><\/td>\n<td width=\"381\">Privil\u00e9gio global<\/td>\n<\/tr>\n<tr>\n<td><strong>db.*<\/strong><\/td>\n<td>Qualquer tabela do banco db<\/td>\n<\/tr>\n<tr>\n<td><strong>db.tb<\/strong><\/td>\n<td>Apenas a tabela tb do banco de dados db. Para especificar apenas algumas colunas de uma determinada tabela, estas dever\u00e3o ser listadas ao lado do privil\u00e9gio<br \/>\n(<strong>priv (<\/strong><em><strong>colunas<\/strong><\/em><strong>)<\/strong>)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p class=\"style1\"><span style=\"font-family: Verdana; font-size: small;\"><br \/>\nDepois do n\u00edvel voc\u00ea dever\u00e1 indicar o usu\u00e1rio, ou a lista de usu\u00e1rios, para os quais os privil\u00e9gios se aplicam. No MySQL o usu\u00e1rio \u00e9 constitu\u00eddo de um nome mais o host de onde ele poder\u00e1 acessar o servidor (user@host). Caso voc\u00ea n\u00e3o informe o host para o usu\u00e1rio, o MySQL assumir\u00e1 &#8220;%&#8221;, isto \u00e9, todos os hosts. A senha do usu\u00e1rio \u00e9 opcional, mas \u00e9 recomendado sempre inform\u00e1-la no momento de cria\u00e7\u00e3o do usu\u00e1rio, por quest\u00f5es de seguran\u00e7a. Para adicionar privil\u00e9gios a um usu\u00e1rio existente o <strong>IDENTIFIED BY<\/strong> poder\u00e1 ser omitido. No exemplo a seguir \u00e9 criado um usu\u00e1rio com o nome teste que pode se conectar somente do host onde o servidor est\u00e1 em execu\u00e7\u00e3o (localhost), o usu\u00e1rio s\u00f3 poder\u00e1 fazer <strong>SELECT<\/strong> nas colunas nome e idade da tabela pessoa, que se encontra no banco de dados rh. A senha do usu\u00e1rio \u00e9 12345.<\/span><\/p>\n<p><strong>mysql&gt;GRANT SELECT (nome, idade) ON rh.pessoa TO teste@localhost<br \/>\nIDENTIFIED BY &#8220;12345&#8221;;<\/strong><\/p>\n<p>Para listar os privil\u00e9gios deste usu\u00e1rio utilize o comando:<\/p>\n<p><strong>mysql&gt;SHOW GRANTS FOR teste@localhost;<\/strong><\/p>\n<p>Voc\u00ea pode especificar um conjunto de hosts utilizando o caracter &#8220;%&#8221;, neste caso \u00e9 poss\u00edvel dar acesso a um usu\u00e1rio dentro de uma faixa de IPs ou DNS. Usu\u00e1rios an\u00f4nimos tamb\u00e9m podem ser criados informando um nome com o caracter espa\u00e7o \u00a0(&#8221; &#8220;). No exemplo a seguir, o usu\u00e1rio remoto poder\u00e1 executar UPDATE e INSERT em qualquer tabela do banco de dados rh, sendo poss\u00edvel a conex\u00e3o ao servidor a partir de qualquer m\u00e1quina no dom\u00ednio mysqlbrasil.com.br:<\/p>\n<p><strong>mysql&gt;GRANT UPDATE, INSERT ON rh.* TO remoto@&#8221;%.mysqlbrasil.com.br&#8221;<br \/>\nIDENTIFIED BY &#8220;remoto&#8221;;<\/strong><\/p>\n<p>Ou utilizando IP:<\/p>\n<p><strong>mysql&gt;GRANT UPDATE, INSERT ON rh.* TO remoto@&#8221;200.236.13.%&#8221; IDENTIFIED BY &#8220;remoto&#8221;;<\/strong><\/p>\n<p>Um usu\u00e1rio an\u00f4nimo com os mesmos privil\u00e9gios do usu\u00e1rio remoto seria criado da seguinte forma:<\/p>\n<p><strong>mysql&gt;GRANT UPDATE, INSERT ON rh.* TO &#8221; &#8220;@&#8221;%mysqlbrasil.com.br&#8221;<br \/>\nIDENTIFIED BY &#8220;anonimo&#8221;;<\/strong><\/p>\n<p>Finalmente, a op\u00e7\u00e3o GRANT OPTION \u00e9 utilizada para que o usu\u00e1rio possa conceder os seus privil\u00e9gios para outros usu\u00e1rios do banco. Al\u00e9m disto, voc\u00ea poder\u00e1 limitar os recursos do usu\u00e1rio com as op\u00e7\u00f5es <strong>MAX_QUERIES_PER_HOUR<\/strong>, <strong>MAX_UPDATES_PER_HOUR<\/strong> ou <strong>MAX_CONNECTIONS_PER_HOUR<\/strong>.<\/p>\n<p>Para remover um privil\u00e9gio do usu\u00e1rio utilize o comando REVOKE mostrado abaixo:<\/p>\n<p><strong>REVOKE priv [(<em>colunas<\/em>)] [, priv [(<em>colunas<\/em>)]] &#8230;<br \/>\n<\/strong><strong>ON {*.* | <em>db.*<\/em> | <em>db.tabela<\/em>}<br \/>\nFROM <em>usuario<\/em> [, <em>usuario<\/em>] &#8230;<\/strong><\/p>\n<p>Lembre-se de que a parte <strong>ON<\/strong> do <strong>REVOKE<\/strong> dever\u00e1 coincidir com a parte <strong>ON<\/strong> do <strong>GRANT<\/strong> que voc\u00ea deseja remover, caso isto n\u00e3o se verifique o comando <strong>REVOKE<\/strong> n\u00e3o ter\u00e1 efeito algum. Al\u00e9m disto, o comando <strong>REVOKE<\/strong> remove apenas os privil\u00e9gios do usu\u00e1rio, mas o usu\u00e1rio continuar\u00e1 existindo. A remo\u00e7\u00e3o do usu\u00e1rio dever\u00e1 ser feita com um <strong>DELETE<\/strong> expl\u00edcito na tabela de usu\u00e1rios do MySQL, ap\u00f3s terem sido Removidos todos os seus privil\u00e9gios com o comando <strong>REVOKE<\/strong>. Observe que para remover o usu\u00e1rio voc\u00ea dever\u00e1 ter privil\u00e9gio para executar <strong>DELETE<\/strong> na tabela user do mysql. Geralmente, esta tarefa \u00e9 executada pelo administrador do banco (<strong>root<\/strong>).<\/p>\n<p><strong>mysql&gt;DELETE FROM mysql.user WHERE user=&#8221;teste&#8221; AND host=&#8221;localhost&#8221;;<\/strong><\/p>\n<p>Feito isto, voc\u00ea ter\u00e1 que executar um comando <strong>FLUSH PRIVILEGES<\/strong> para que o MySQL possa atualizar os privil\u00e9gios que est\u00e3o em mem\u00f3ria.<\/p>\n<p><strong>mysql&gt;FLUSH PRIVILEGES;<\/strong><\/p>\n<p>Aqui estamos descrevendo os comandos para a manipula\u00e7\u00e3o de usu\u00e1rios, sendo que esta \u00e9 a maneira de entendermos como funciona a cria\u00e7\u00e3o de usu\u00e1rios no MySQL. Uma forma mais intuitiva para executar esta tarefa pode ser encontrada no MySQL Administrator, que foi apresentado no \u00faltimo artigo.<\/p>\n<p><strong>Problemas para a conex\u00e3o com o MySQL a partir do localhost:<\/strong><\/p>\n<p>Ao instalar o MySQL s\u00e3o criados o usu\u00e1rio root com todos os privil\u00e9gios (administrador), podendo se conectar somente do host local sem senha, e o usu\u00e1rio an\u00f4nimo com privil\u00e9gios apenas no banco de dados test, que pode se conectar apenas do host local sem senha. Para autentiticar um usu\u00e1rio durante a conex\u00e3o com o servidor, o MySQL armazena em mem\u00f3ria a listas de todos usu\u00e1rios, hosts e senhas cadastrados no banco e as ordena do host mais espec\u00edfico para o menos espec\u00edfico. Caso existam dois hosts iguais, os usu\u00e1rios mais espec\u00edficos vir\u00e3o antes do usu\u00e1rio an\u00f4nimo. Feito isto, a cada conex\u00e3o ser\u00e1 pesquisada nesta lista a primeira ocorr\u00eancia que coincida o host, usu\u00e1rio e senha informados no momento da tentativa de conex\u00e3o. Tomemos o caso em que ap\u00f3s a instala\u00e7\u00e3o do MySQL, criamos um usu\u00e1rio que possa se conectar a partir de qualquer host dentro do dom\u00ednio onde se encontra o servidor MySQL:<\/p>\n<p><strong>mysql&gt;GRANT ALL ON rh.* TO user@&#8221;192.168.0.%&#8221; IDENTIFIED BY &#8220;12345&#8221;;<\/strong><\/p>\n<p>Neste caso, o MySQL cria em mem\u00f3ria a lista dos usu\u00e1rios da seguinte forma:<\/p>\n<p><strong>Usu\u00e1rio Senha<br \/>\nroot@localhost<br \/>\n&#8221; &#8220;@localhost<br \/>\nuser@&#8221;192.168.0.%&#8221; 12345<\/strong><\/p>\n<p>Este usu\u00e1rio ser\u00e1 capaz de se conectar ao servidor MySQL a partir de qualquer m\u00e1quina no dom\u00ednio, exceto o host local, pois neste caso, ao pesquisar na lista pelo user@localhost, a primeira ocorr\u00eancia encontrada \u00e9 a do usu\u00e1rio an\u00f4nimo, j\u00e1 que qualquer usu\u00e1rio pode ser considerado an\u00f4nimo pelo MySQL. O detalhe \u00e9 que as senhas destes usu\u00e1rios n\u00e3o coincidem, o que gera um erro de &#8220;Acesso Negado&#8221;. Para evitar a situa\u00e7\u00e3o acima voc\u00ea dever\u00e1 excluir o usu\u00e1rio an\u00f4nimo ou adicionar o mesmo usu\u00e1rio para se conectar remoto e a partir do host local, da seguinte forma:<\/p>\n<p><strong>mysql&gt;GRANT ALL ON rh.* TO user@&#8221;192.168.0.%&#8221; IDENTIFIED BY &#8220;12345&#8221;,<br \/>\nuser@localhost IDENTIFIED BY &#8220;12345&#8221;;<\/strong><\/p>\n<p>Assim a ordena\u00e7\u00e3o ficaria:<\/p>\n<p><strong>Usu\u00e1rio Senha<br \/>\nroot@localhost<br \/>\nuser@localhost 12345<br \/>\n&#8221; &#8220;@localhost<br \/>\nuser@&#8221;192.168.0.%&#8221; 12345<\/strong><\/p>\n<p>Desta forma, o primeiro registro encontrado n\u00e3o \u00e9 mais o usu\u00e1rio an\u00f4nimo e sim o user@localhost, portanto a conex\u00e3o ser\u00e1 estabelecida com sucesso. Para evitar este tipo de transtorno \u00e9 melhor remover o usu\u00e1rio an\u00f4nimo ap\u00f3s a instala\u00e7\u00e3o do servidor, eliminando tamb\u00e9m eventuais problemas de seguran\u00e7a.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Fonte:\u00a0http:\/\/www.devmedia.com.br\/gerenciamento-de-usuarios-e-controle-de-acessos-do-mysql\/1898<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Veja neste artigo uma descri\u00e7\u00e3o dos mecanismos de controles de acessos do MySQL, uma apresenta\u00e7\u00e3o das rotinas para cria\u00e7\u00e3o de usu\u00e1rios e gerenciamento de seus privil\u00e9gios. &nbsp; Gerenciamento de Usu\u00e1rios e Controle&#8230;<\/p>\n","protected":false},"author":1,"featured_media":724,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,4],"tags":[],"class_list":["post-726","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-server-dedicado-vps","category-tutorial"],"_links":{"self":[{"href":"https:\/\/eurotigroup.com.br\/blog\/wp-json\/wp\/v2\/posts\/726","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/eurotigroup.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/eurotigroup.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/eurotigroup.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/eurotigroup.com.br\/blog\/wp-json\/wp\/v2\/comments?post=726"}],"version-history":[{"count":3,"href":"https:\/\/eurotigroup.com.br\/blog\/wp-json\/wp\/v2\/posts\/726\/revisions"}],"predecessor-version":[{"id":729,"href":"https:\/\/eurotigroup.com.br\/blog\/wp-json\/wp\/v2\/posts\/726\/revisions\/729"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/eurotigroup.com.br\/blog\/wp-json\/wp\/v2\/media\/724"}],"wp:attachment":[{"href":"https:\/\/eurotigroup.com.br\/blog\/wp-json\/wp\/v2\/media?parent=726"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/eurotigroup.com.br\/blog\/wp-json\/wp\/v2\/categories?post=726"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/eurotigroup.com.br\/blog\/wp-json\/wp\/v2\/tags?post=726"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}