{"id":2241,"date":"2026-08-13T18:15:55","date_gmt":"2026-08-13T21:15:55","guid":{"rendered":"https:\/\/jrtx.com.br\/blog\/2026\/08\/13\/aula-19-usuarios-e-permissoes-grant-revoke-e-seguranca\/"},"modified":"2026-08-13T18:15:55","modified_gmt":"2026-08-13T21:15:55","slug":"aula-19-usuarios-e-permissoes-grant-revoke-e-seguranca","status":"publish","type":"post","link":"https:\/\/jrtx.com.br\/blog\/2026\/08\/13\/aula-19-usuarios-e-permissoes-grant-revoke-e-seguranca\/","title":{"rendered":"Aula 19: Usu\u00e1rios e permiss\u00f5es \u2014 GRANT, REVOKE e seguran\u00e7a"},"content":{"rendered":"<p>Nesta aula vamos mergulhar em um dos pilares mais cr\u00edticos da administra\u00e7\u00e3o de bancos de dados MySQL: o gerenciamento de <strong>usu\u00e1rios e permiss\u00f5es<\/strong>. Diferentemente de muitos sistemas que tratam autentica\u00e7\u00e3o e autoriza\u00e7\u00e3o de forma simplificada, o MySQL possui um modelo extremamente granular \u2014 ele permite controlar exatamente o que cada conta pode ou n\u00e3o pode fazer, em quais objetos (global, banco, tabela ou at\u00e9 coluna) e a partir de quais hosts. Compreender esse modelo \u00e9 obrigat\u00f3rio para qualquer profissional de TI que deseja proteger dados, evitar acessos indevidos e manter a integridade de ambientes produtivos. Ao longo desta aula, voc\u00ea aprender\u00e1 a criar usu\u00e1rios, conceder privil\u00e9gios com <strong>GRANT<\/strong>, revog\u00e1-los com <strong>REVOKE<\/strong>, verificar as permiss\u00f5es atribu\u00eddas e resolver os erros mais comuns relacionados ao controle de acesso.<\/p>\n<p>O dom\u00ednio de <strong>usu\u00e1rios e permiss\u00f5es<\/strong> no MySQL n\u00e3o \u00e9 apenas uma habilidade t\u00e9cnica \u2014 \u00e9 uma necessidade de seguran\u00e7a da informa\u00e7\u00e3o. Uma configura\u00e7\u00e3o inadequada pode abrir brechas para ataques, vazamento de dados e comprometimento de servidores inteiros. Em nossa experi\u00eancia na JRT Technology Solutions, j\u00e1 identificamos in\u00fameros ambientes onde contas com privil\u00e9gios excessivos ou senhas fracas se tornaram a porta de entrada para incidentes. Por isso, esta li\u00e7\u00e3o adota uma abordagem pr\u00e1tica e segura, alinhada ao princ\u00edpio do menor privil\u00e9gio: cada usu\u00e1rio deve ter exatamente as permiss\u00f5es necess\u00e1rias para executar suas tarefas \u2014 nada mais, nada menos.<\/p>\n<p>Antes de prosseguir, \u00e9 importante que voc\u00ea j\u00e1 tenha conclu\u00eddo as aulas anteriores do curso, onde instalamos e configuramos o MySQL Server, aprendemos os comandos b\u00e1sicos do <strong>mysql<\/strong> client e exploramos a cria\u00e7\u00e3o de bancos de dados e tabelas. Voc\u00ea precisar\u00e1 de acesso a um servidor MySQL em funcionamento, preferencialmente com privil\u00e9gios de root ou de um usu\u00e1rio com a permiss\u00e3o <strong>CREATE USER<\/strong> e <strong>GRANT OPTION<\/strong>. Vamos trabalhar com comandos executados no terminal (linha de comando) do sistema operacional, mas os conceitos se aplicam a qualquer ferramenta de gerenciamento MySQL, como MySQL Workbench, phpMyAdmin ou DBeaver.<\/p>\n<p>Ao final desta aula, voc\u00ea ser\u00e1 capaz de criar contas de usu\u00e1rio seguras, definir pol\u00edticas de acesso por host, conceder e revogar privil\u00e9gios em diferentes escopos, visualizar as permiss\u00f5es concedidas, alterar m\u00e9todos de autentica\u00e7\u00e3o, bloquear contas e solucionar erros de acesso. Tamb\u00e9m discutiremos boas pr\u00e1ticas adotadas diariamente por nossos especialistas na JRT Technology Solutions e configuraremos um ambiente de teste real para verifica\u00e7\u00e3o de cada comando.<\/p>\n<h3>O que voc\u00ea vai aprender nesta aula<\/h3>\n<ul>\n<li>Compreender o modelo de autentica\u00e7\u00e3o e autoriza\u00e7\u00e3o do MySQL, incluindo os n\u00edveis de privil\u00e9gios.<\/li>\n<li>Criar e gerenciar contas de usu\u00e1rio com <strong>CREATE USER<\/strong>, <strong>ALTER USER<\/strong>, <strong>DROP USER<\/strong> e <strong>RENAME USER<\/strong>.<\/li>\n<li>Conceder privil\u00e9gios com <strong>GRANT<\/strong> em escopos global, de banco, tabela, coluna e rotina.<\/li>\n<li>Revogar privil\u00e9gios com <strong>REVOKE<\/strong> e entender as implica\u00e7\u00f5es de cada opera\u00e7\u00e3o.<\/li>\n<li>Visualizar permiss\u00f5es efetivas com <strong>SHOW GRANTS<\/strong> e consultas \u00e0s tabelas do sistema.<\/li>\n<li>Gerenciar plugins de autentica\u00e7\u00e3o, incluindo <strong>mysql_native_password<\/strong>, <strong>caching_sha2_password<\/strong> e <strong>auth_socket<\/strong>.<\/li>\n<li>Testar acessos, identificar e corrigir erros comuns como <strong>ERROR 1045<\/strong>, <strong>ERROR 1130<\/strong> e <strong>ERROR 1142<\/strong>.<\/li>\n<li>Aplicar boas pr\u00e1ticas de seguran\u00e7a para <strong>usu\u00e1rios e permiss\u00f5es<\/strong> em produ\u00e7\u00e3o.<\/li>\n<\/ul>\n<h3>Pr\u00e9-requisitos e Ambiente<\/h3>\n<p>Para acompanhar esta aula de forma pr\u00e1tica, voc\u00ea precisar\u00e1 de um servidor MySQL instalado e em execu\u00e7\u00e3o. As aulas anteriores deste curso cobriram a instala\u00e7\u00e3o em sistemas <strong>Ubuntu\/Debian<\/strong> e <strong>CentOS\/RHEL\/Rocky Linux<\/strong>, portanto voc\u00ea j\u00e1 deve ter o ambiente pronto. Verifique se o servi\u00e7o est\u00e1 ativo com os seguintes comandos, conforme o seu sistema operacional:<\/p>\n<pre><code># Para Ubuntu\/Debian (systemd)\nsudo systemctl status mysql\n\n# Para CentOS\/RHEL\/Rocky Linux (systemd)\nsudo systemctl status mysqld<\/code><\/pre>\n<p>Al\u00e9m disso, voc\u00ea deve ter acesso ao cliente <strong>mysql<\/strong> e a uma conta com privil\u00e9gios administrativos. No Ubuntu\/Debian, a instala\u00e7\u00e3o padr\u00e3o cria um usu\u00e1rio root que se autentica via <strong>auth_socket<\/strong> \u2014 isso significa que o acesso administrativo \u00e9 feito com <strong>sudo mysql<\/strong> sem senha. J\u00e1 no CentOS\/RHEL\/Rocky, a instala\u00e7\u00e3o gera uma senha tempor\u00e1ria para o root e exige que voc\u00ea a altere no primeiro acesso. Em ambos os casos, tenha em m\u00e3os as credenciais adequadas.<\/p>\n<p>Se estiver utilizando um ambiente de produ\u00e7\u00e3o, recomendamos fortemente que voc\u00ea execute os comandos desta aula primeiro em um servidor de testes. Em nossos projetos na JRT Technology Solutions, sempre validamos mudan\u00e7as de permiss\u00f5es em ambientes de homologa\u00e7\u00e3o antes de aplic\u00e1-las em produ\u00e7\u00e3o, para evitar impactos indesejados.<\/p>\n<h3>Fundamentos de Usu\u00e1rios e permiss\u00f5es no MySQL<\/h3>\n<p>O MySQL adota um modelo de controle de acesso baseado em contas compostas por duas partes: o <strong>nome de usu\u00e1rio<\/strong> e o <strong>host de origem<\/strong>. Por exemplo, <strong>&#8216;ana&#8217;@&#8217;localhost&#8217;<\/strong> e <strong>&#8216;ana&#8217;@&#8217;192.168.1.50&#8217;<\/strong> s\u00e3o consideradas contas completamente distintas, mesmo compartilhando o mesmo nome. Essa distin\u00e7\u00e3o \u00e9 essencial porque permite definir regras diferentes dependendo de onde a conex\u00e3o se origina. Um usu\u00e1rio <strong>&#8216;root&#8217;@&#8217;localhost&#8217;<\/strong> pode ter acesso total, enquanto <strong>&#8216;root&#8217;@&#8217;%&#8217;<\/strong> (qualquer host) pode ser totalmente negado ou limitado.<\/p>\n<p>As informa\u00e7\u00f5es sobre <strong>usu\u00e1rios e permiss\u00f5es<\/strong> s\u00e3o armazenadas em tabelas do banco de dados <strong>mysql<\/strong>, que \u00e9 o dicion\u00e1rio de dados do pr\u00f3prio servidor. As principais tabelas s\u00e3o: <strong>mysql.user<\/strong> (contas e privil\u00e9gios globais), <strong>mysql.db<\/strong> (privil\u00e9gios em n\u00edvel de banco), <strong>mysql.tables_priv<\/strong> (privil\u00e9gios em tabelas), <strong>mysql.columns_priv<\/strong> (privil\u00e9gios em colunas) e <strong>mysql.procs_priv<\/strong> (privil\u00e9gios em stored procedures e fun\u00e7\u00f5es). Quando voc\u00ea executa um comando <strong>GRANT<\/strong>, o servidor atualiza essas tabelas automaticamente e, em vers\u00f5es recentes, tamb\u00e9m recarrega os dados em mem\u00f3ria \u2014 n\u00e3o sendo necess\u00e1rio executar <strong>FLUSH PRIVILEGES<\/strong> na maioria dos casos.<\/p>\n<p>Os privil\u00e9gios no MySQL s\u00e3o organizados em diferentes n\u00edveis hier\u00e1rquicos. O n\u00edvel <strong>global<\/strong> se aplica a todos os bancos de dados do servidor; o n\u00edvel de <strong>banco de dados<\/strong> se restringe a um schema espec\u00edfico; o n\u00edvel de <strong>tabela<\/strong> limita a uma tabela; o n\u00edvel de <strong>coluna<\/strong> permite conceder acesso apenas a determinadas colunas de uma tabela; e o n\u00edvel de <strong>rotina<\/strong> se aplica a procedures e fun\u00e7\u00f5es. Essa granularidade \u00e9 um dos pontos fortes do MySQL, pois possibilita criar pol\u00edticas de acesso extremamente precisas.<\/p>\n<p>A tabela a seguir resume os principais n\u00edveis de privil\u00e9gio, os objetos aos quais se aplicam e onde s\u00e3o armazenados:<\/p>\n<table border=\"1\" cellpadding=\"8\" cellspacing=\"0\" style=\"border-collapse: collapse; width: 100%;\">\n<thead>\n<tr>\n<th>N\u00edvel de Privil\u00e9gio<\/th>\n<th>Objeto Alvo<\/th>\n<th>Tabela de Armazenamento<\/th>\n<th>Exemplo de Concess\u00e3o<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Global<\/td>\n<td>Todos os bancos e tabelas do servidor<\/td>\n<td>mysql.user<\/td>\n<td>GRANT SELECT ON *.* TO &#8216;user&#8217;@&#8217;host&#8217;;<\/td>\n<\/tr>\n<tr>\n<td>Banco de dados<\/td>\n<td>Todas as tabelas de um banco espec\u00edfico<\/td>\n<td>mysql.db<\/td>\n<td>GRANT SELECT ON db1.* TO &#8216;user&#8217;@&#8217;host&#8217;;<\/td>\n<\/tr>\n<tr>\n<td>Tabela<\/td>\n<td>Todas as colunas de uma tabela espec\u00edfica<\/td>\n<td>mysql.tables_priv<\/td>\n<td>GRANT SELECT ON db1.tab TO &#8216;user&#8217;@&#8217;host&#8217;;<\/td>\n<\/tr>\n<tr>\n<td>Coluna<\/td>\n<td>Apenas colunas espec\u00edficas de uma tabela<\/td>\n<td>mysql.columns_priv<\/td>\n<td>GRANT SELECT (col1, col2) ON db1.tab TO &#8216;user&#8217;@&#8217;host&#8217;;<\/td>\n<\/tr>\n<tr>\n<td>Rotina<\/td>\n<td>Procedures e fun\u00e7\u00f5es armazenadas<\/td>\n<td>mysql.procs_priv<\/td>\n<td>GRANT EXECUTE ON PROCEDURE db1.proc TO &#8216;user&#8217;@&#8217;host&#8217;;<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Al\u00e9m dos n\u00edveis, os privil\u00e9gios individuais definem as opera\u00e7\u00f5es permitidas. Os mais comuns incluem <strong>SELECT<\/strong>, <strong>INSERT<\/strong>, <strong>UPDATE<\/strong>, <strong>DELETE<\/strong>, <strong>CREATE<\/strong>, <strong>DROP<\/strong>, <strong>ALTER<\/strong>, <strong>INDEX<\/strong>, <strong>GRANT OPTION<\/strong> (permiss\u00e3o para conceder privil\u00e9gios a outros) e <strong>ALL PRIVILEGES<\/strong> (todos os privil\u00e9gios, exceto GRANT OPTION). Existem tamb\u00e9m privil\u00e9gios administrativos globais como <strong>RELOAD<\/strong>, <strong>SHUTDOWN<\/strong>, <strong>PROCESS<\/strong> e <strong>FILE<\/strong>, que devem ser concedidos com extrema cautela.<\/p>\n<h3>Criando Usu\u00e1rios e permiss\u00f5es com CREATE USER<\/h3>\n<p>Para criar uma nova conta de usu\u00e1rio no MySQL, utilizamos o comando <strong>CREATE USER<\/strong>. Esse comando define o nome da conta, o host de origem e a senha inicial. A sintaxe b\u00e1sica \u00e9 a seguinte:<\/p>\n<pre><code>CREATE USER 'nome_usuario'@'host' IDENTIFIED BY 'senha_segura';<\/code><\/pre>\n<p>Vamos iniciar um procedimento pr\u00e1tico completo. Primeiro, conecte-se ao servidor MySQL como usu\u00e1rio administrativo. No <strong>Ubuntu\/Debian<\/strong>, o padr\u00e3o \u00e9 usar autentica\u00e7\u00e3o via socket, ent\u00e3o o comando ser\u00e1:<\/p>\n<pre><code># Conectar como root via socket (Ubuntu\/Debian)\nsudo mysql<\/code><\/pre>\n<p>J\u00e1 no <strong>CentOS\/RHEL\/Rocky Linux<\/strong>, a autentica\u00e7\u00e3o root \u00e9 por senha, ent\u00e3o utilize:<\/p>\n<pre><code># Conectar como root via senha (CentOS\/RHEL\/Rocky)\nmysql -u root -p<\/code><\/pre>\n<p>Ap\u00f3s entrar no prompt do MySQL (indicado por <strong>mysql&gt;<\/strong>), execute o comando <strong>CREATE USER<\/strong> para criar uma conta de teste. Observe que usaremos o host <strong>localhost<\/strong> para restringir o acesso apenas \u00e0 m\u00e1quina local. A senha escolhida deve seguir boas pr\u00e1ticas: m\u00ednimo de 12 caracteres, combina\u00e7\u00e3o de letras mai\u00fasculas, min\u00fasculas, n\u00fameros e s\u00edmbolos.<\/p>\n<pre><code>-- Criar um usu\u00e1rio local chamado 'app_user' com senha forte\nCREATE USER 'app_user'@'localhost' IDENTIFIED BY 'Senha@Forte#2026';\n\n-- Criar um usu\u00e1rio que pode se conectar de qualquer host (cuidado!)\nCREATE USER 'app_remote'@'%' IDENTIFIED BY 'Outra@Senha#2026';\n\n-- Criar um usu\u00e1rio restrito a um IP espec\u00edfico\nCREATE USER 'app_lan'@'192.168.1.100' IDENTIFIED BY 'Senha@Lan#2026';<\/code><\/pre>\n<p>O primeiro comando cria a conta <strong>app_user<\/strong> que s\u00f3 pode autenticar a partir do pr\u00f3prio servidor (<strong>localhost<\/strong>). O segundo cria <strong>app_remote<\/strong> que pode se conectar de qualquer host \u2014 essa pr\u00e1tica deve ser evitada em produ\u00e7\u00e3o a menos que haja uma necessidade real. O terceiro cria <strong>app_lan<\/strong> restrito a um IP espec\u00edfico da rede local. A sa\u00edda esperada para cada comando bem-sucedido \u00e9:<\/p>\n<pre><code class=\"output\">Query OK, 0 rows affected (0.01 sec)<\/code><\/pre>\n<p>\u00c9 importante destacar que o <strong>CREATE USER<\/strong> apenas cria a conta, n\u00e3o concede nenhum privil\u00e9gio. O usu\u00e1rio rec\u00e9m-criado poder\u00e1 conectar-se ao servidor, mas n\u00e3o ter\u00e1 permiss\u00e3o nem mesmo para visualizar bancos de dados. Para conceder acesso, precisamos do comando <strong>GRANT<\/strong>, que ser\u00e1 detalhado na pr\u00f3xima se\u00e7\u00e3o.<\/p>\n<p>Vamos verificar se as contas foram criadas corretamente consultando a tabela <strong>mysql.user<\/strong>. Execute o comando abaixo:<\/p>\n<pre><code>-- Consultar usu\u00e1rios criados\nSELECT User, Host, plugin FROM mysql.user WHERE User IN ('app_user', 'app_remote', 'app_lan');<\/code><\/pre>\n<p>A sa\u00edda esperada mostrar\u00e1 as tr\u00eas contas com seus respectivos hosts e o plugin de autentica\u00e7\u00e3o padr\u00e3o. Em servidores MySQL 8.0 ou superior, o plugin padr\u00e3o \u00e9 <strong>caching_sha2_password<\/strong>, enquanto vers\u00f5es antigas usam <strong>mysql_native_password<\/strong>.<\/p>\n<pre><code class=\"output\">+-------------+----------------+-----------------------+\n| User        | Host           | plugin                |\n+-------------+----------------+-----------------------+\n| app_user    | localhost      | caching_sha2_password |\n| app_remote  | %              | caching_sha2_password |\n| app_lan     | 192.168.1.100  | caching_sha2_password |\n+-------------+----------------+-----------------------+\n3 rows in set (0.00 sec)<\/code><\/pre>\n<p>Agora que as contas existem, precisamos conceder permiss\u00f5es. Mas antes, entenda: em vers\u00f5es recentes do MySQL, o comando <strong>GRANT<\/strong> n\u00e3o cria mais usu\u00e1rios automaticamente (a menos que voc\u00ea utilize uma sintaxe espec\u00edfica e o servidor esteja configurado para isso). Por isso, a ordem correta \u00e9 sempre <strong>CREATE USER<\/strong> primeiro e <strong>GRANT<\/strong> depois.<\/p>\n<h3>Concedendo Usu\u00e1rios e permiss\u00f5es com GRANT<\/h3>\n<p>O comando <strong>GRANT<\/strong> \u00e9 a principal ferramenta para atribuir privil\u00e9gios a contas de usu\u00e1rio. Sua sintaxe geral \u00e9:<\/p>\n<pre><code>GRANT <privil\u00e9gio(s)> ON <objeto> TO 'usu\u00e1rio'@'host' [WITH GRANT OPTION];<\/code><\/pre>\n<p>Os privil\u00e9gios podem ser listados separados por v\u00edrgula, e o objeto define o escopo. Para conceder privil\u00e9gios globais, usamos <strong>*.*<\/strong>; para um banco espec\u00edfico, <strong>nome_banco.*<\/strong>; para uma tabela, <strong>nome_banco.nome_tabela<\/strong>; e para colunas espec\u00edficas, colocamos a lista entre par\u00eanteses antes do <strong>ON<\/strong>. Vamos aos exemplos pr\u00e1ticos.<\/p>\n<p>Suponha que o usu\u00e1rio <strong>app_user<\/strong> precise de acesso de leitura e escrita a um banco de dados chamado <strong>vendas<\/strong>. Execute o comando abaixo:<\/p>\n<pre><code>-- Conceder SELECT, INSERT, UPDATE e DELETE no banco vendas\nGRANT SELECT, INSERT, UPDATE, DELETE ON vendas.* TO 'app_user'@'localhost';<\/code><\/pre>\n<p>A sa\u00edda esperada \u00e9:<\/p>\n<pre><code class=\"output\">Query OK, 0 rows affected (0.01 sec)<\/code><\/pre>\n<p>Agora, o usu\u00e1rio <strong>app_user<\/strong> pode executar opera\u00e7\u00f5es de leitura e modifica\u00e7\u00e3o em todas as tabelas do banco <strong>vendas<\/strong>, mas n\u00e3o pode criar, alterar ou excluir tabelas, nem acessar outros bancos. Esse \u00e9 um exemplo t\u00edpico de permiss\u00e3o de aplica\u00e7\u00e3o web: a aplica\u00e7\u00e3o s\u00f3 precisa ler e gravar dados, n\u00e3o administrar a estrutura do banco.<\/p>\n<p>Para conceder privil\u00e9gios administrativos globais, como <strong>CREATE<\/strong>, <strong>DROP<\/strong>, <strong>ALTER<\/strong> e <strong>INDEX<\/strong>, use o escopo <strong>*.*<\/strong>. No exemplo a seguir, criamos um usu\u00e1rio com poderes de administra\u00e7\u00e3o de banco de dados, mas sem o perigo do <strong>GRANT OPTION<\/strong>:<\/p>\n<pre><code>-- Conceder privil\u00e9gios globais de administra\u00e7\u00e3o de banco de dados\nGRANT CREATE, DROP, ALTER, INDEX, SELECT, INSERT, UPDATE, DELETE ON *.* TO 'db_admin'@'localhost';<\/code><\/pre>\n<p>Se voc\u00ea deseja que esse usu\u00e1rio tamb\u00e9m possa criar outros usu\u00e1rios e gerenciar permiss\u00f5es, \u00e9 necess\u00e1rio adicionar <strong>CREATE USER<\/strong> e <strong>GRANT OPTION<\/strong>. Contudo, essa combina\u00e7\u00e3o \u00e9 extremamente poderosa e deve ser reservada para administradores de confian\u00e7a. Em nossos projetos na JRT Technology Solutions, raramente concedemos <strong>GRANT OPTION<\/strong> a contas de aplica\u00e7\u00e3o, justamente para evitar que um eventual comprometimento da aplica\u00e7\u00e3o permita a escala\u00e7\u00e3o de privil\u00e9gios.<\/p>\n<pre><code>-- Conceder todos os privil\u00e9gios com capacidade de repassar permiss\u00f5es\nGRANT ALL PRIVILEGES ON *.* TO 'super_admin'@'localhost' WITH GRANT OPTION;<\/code><\/pre>\n<p>Tamb\u00e9m \u00e9 poss\u00edvel conceder permiss\u00f5es em n\u00edvel de coluna. Imagine que o usu\u00e1rio <strong>relatorio_user<\/strong> precise apenas ler as colunas <strong>nome<\/strong> e <strong>email<\/strong> da tabela <strong>clientes<\/strong> no banco <strong>vendas<\/strong>. O comando seria:<\/p>\n<pre><code>-- Conceder SELECT apenas nas colunas nome e email da tabela clientes\nGRANT SELECT (nome, email) ON vendas.clientes TO 'relatorio_user'@'localhost';<\/code><\/pre>\n<p>Essa granularidade \u00e9 \u00fatil em cen\u00e1rios de compliance, como LGPD, onde o acesso a dados pessoais deve ser minimizado. No entanto, privil\u00e9gios em coluna s\u00e3o armazenados em tabelas separadas e podem exigir verifica\u00e7\u00f5es adicionais de performance em consultas complexas.<\/p>\n<p>A tabela a seguir resume os privil\u00e9gios mais comuns e o que cada um permite, para servir de refer\u00eancia r\u00e1pida:<\/p>\n<table border=\"1\" cellpadding=\"8\" cellspacing=\"0\" style=\"border-collapse: collapse; width: 100%;\">\n<thead>\n<tr>\n<th>Privil\u00e9gio<\/th>\n<th>Descri\u00e7\u00e3o<\/th>\n<th>Escopo T\u00edpico<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>ALL PRIVILEGES<\/strong><\/td>\n<td>Todos os privil\u00e9gios dispon\u00edveis, exceto GRANT OPTION<\/td>\n<td>Qualquer<\/td>\n<\/tr>\n<tr>\n<td><strong>SELECT<\/strong><\/td>\n<td>Permite ler dados (SELECT)<\/td>\n<td>Global, banco, tabela, coluna<\/td>\n<\/tr>\n<tr>\n<td><strong>INSERT<\/strong><\/td>\n<td>Permite inserir linhas<\/td>\n<td>Global, banco, tabela, coluna<\/td>\n<\/tr>\n<tr>\n<td><strong>UPDATE<\/strong><\/td>\n<td>Permite modificar linhas existentes<\/td>\n<td>Global, banco, tabela, coluna<\/td>\n<\/tr>\n<tr>\n<td><strong>DELETE<\/strong><\/td>\n<td>Permite excluir linhas<\/td>\n<td>Global, banco, tabela<\/td>\n<\/tr>\n<tr>\n<td><strong>CREATE<\/strong><\/td>\n<td>Permite criar bancos de dados ou tabelas<\/td>\n<td>Global, banco<\/td>\n<\/tr>\n<tr>\n<td><strong>DROP<\/strong><\/td>\n<td>Permite excluir bancos de dados, tabelas ou views<\/td>\n<td>Global, banco<\/td>\n<\/tr>\n<tr>\n<td><strong>ALTER<\/strong><\/td>\n<td>Permite alterar a estrutura de tabelas (ALTER TABLE)<\/td>\n<td>Global, banco, tabela<\/td>\n<\/tr>\n<tr>\n<td><strong>INDEX<\/strong><\/td>\n<td>Permite criar ou remover \u00edndices<\/td>\n<td>Global, banco, tabela<\/td>\n<\/tr>\n<tr>\n<td><strong>EXECUTE<\/strong><\/td>\n<td>Permite executar stored procedures e fun\u00e7\u00f5es<\/td>\n<td>Global, banco, rotina<\/td>\n<\/tr>\n<tr>\n<td><strong>GRANT OPTION<\/strong><\/td>\n<td>Permite conceder privil\u00e9gios a outros usu\u00e1rios<\/td>\n<td>Qualquer<\/td>\n<\/tr>\n<tr>\n<td><strong>CREATE USER<\/strong><\/td>\n<td>Permite criar, alterar e remover contas de usu\u00e1rio<\/td>\n<td>Global<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Ap\u00f3s conceder permiss\u00f5es, \u00e9 essencial verificar se elas foram aplicadas corretamente. O comando <strong>SHOW GRANTS FOR &#8216;usu\u00e1rio&#8217;@&#8217;host&#8217;<\/strong> exibe as permiss\u00f5es efetivas. Vamos verificar o usu\u00e1rio <strong>app_user<\/strong>:<\/p>\n<pre><code>-- Verificar permiss\u00f5es do app_user\nSHOW GRANTS FOR 'app_user'@'localhost';<\/code><\/pre>\n<p>A sa\u00edda esperada mostrar\u00e1 as permiss\u00f5es concedidas, incluindo a linha que o MySQL gera automaticamente para permitir a conex\u00e3o:<\/p>\n<pre><code class=\"output\">+---------------------------------------------------------------------------------------------+\n| Grants for app_user@localhost                                                               |\n+---------------------------------------------------------------------------------------------+\n| GRANT USAGE ON *.* TO `app_user`@`localhost`                                                |\n| GRANT SELECT, INSERT, UPDATE, DELETE ON `vendas`.* TO `app_user`@`localhost`                |\n+---------------------------------------------------------------------------------------------+\n2 rows in set (0.00 sec)<\/code><\/pre>\n<p>Note que a linha <strong>GRANT USAGE ON *.*<\/strong> indica apenas que a conta existe e pode conectar, mas n\u00e3o concede nenhum privil\u00e9gio real. Essa linha aparece sempre que uma conta \u00e9 criada, mesmo sem permiss\u00f5es adicionais.<\/p>\n<h3>Revogando Usu\u00e1rios e permiss\u00f5es com REVOKE<\/h3>\n<p>Assim como o <strong>GRANT<\/strong> concede privil\u00e9gios, o comando <strong>REVOKE<\/strong> os remove. A sintaxe \u00e9 semelhante, mas troca <strong>TO<\/strong> por <strong>FROM<\/strong>:<\/p>\n<pre><code>REVOKE <privil\u00e9gio(s)> ON <objeto> FROM 'usu\u00e1rio'@'host';<\/code><\/pre>\n<p>Vamos supor que, por uma mudan\u00e7a de requisitos, o usu\u00e1rio <strong>app_user<\/strong> n\u00e3o deva mais poder excluir registros no banco <strong>vendas<\/strong>. Para revogar apenas o privil\u00e9gio <strong>DELETE<\/strong>, execute:<\/p>\n<pre><code>-- Revogar DELETE do app_user no banco vendas\nREVOKE DELETE ON vendas.* FROM 'app_user'@'localhost';<\/code><\/pre>\n<p>A sa\u00edda esperada:<\/p>\n<pre><code class=\"output\">Query OK, 0 rows affected (0.01 sec)<\/code><\/pre>\n<p>Ap\u00f3s a revoga\u00e7\u00e3o, o usu\u00e1rio ainda poder\u00e1 fazer <strong>SELECT<\/strong>, <strong>INSERT<\/strong> e <strong>UPDATE<\/strong>, mas qualquer tentativa de <strong>DELETE<\/strong> resultar\u00e1 em erro de permiss\u00e3o. Essa granularidade \u00e9 extremamente \u00fatil em ambientes din\u00e2micos, onde as necessidades de acesso mudam com frequ\u00eancia.<\/p>\n<p>Para revogar todos os privil\u00e9gios de uma conta de uma s\u00f3 vez, utilize a sintaxe <strong>REVOKE ALL PRIVILEGES, GRANT OPTION FROM &#8230;<\/strong>. Isso remove tanto os privil\u00e9gios quanto a capacidade de repass\u00e1-los. Veja o exemplo:<\/p>\n<pre><code>-- Revogar todos os privil\u00e9gios e GRANT OPTION do super_admin\nREVOKE ALL PRIVILEGES, GRANT OPTION FROM 'super_admin'@'localhost';<\/code><\/pre>\n<p>\u00c9 importante entender que <strong>REVOKE ALL PRIVILEGES<\/strong> n\u00e3o exclui a conta \u2014 apenas remove todas as permiss\u00f5es concedidas. A conta continua existindo e pode se autenticar, mas n\u00e3o conseguir\u00e1 executar nenhuma opera\u00e7\u00e3o al\u00e9m de conectar. Para remover completamente a conta, use <strong>DROP USER<\/strong>, que veremos mais adiante.<\/p>\n<p>Outro ponto cr\u00edtico: se um usu\u00e1rio possui permiss\u00f5es em m\u00faltiplos n\u00edveis (por exemplo, global e em um banco espec\u00edfico), revogar em um n\u00edvel n\u00e3o afeta o outro. Por exemplo, se <strong>ana<\/strong> tem <strong>SELECT<\/strong> global e <strong>DELETE<\/strong> no banco <strong>vendas<\/strong>, revogar <strong>DELETE<\/strong> em <strong>*.*<\/strong> n\u00e3o remover\u00e1 o <strong>DELETE<\/strong> de <strong>vendas.*<\/strong>. Voc\u00ea precisa revogar cada concess\u00e3o separadamente no escopo correto.<\/p>\n<h3>Visualizando Usu\u00e1rios e permiss\u00f5es com SHOW GRANTS<\/h3>\n<p>O comando <strong>SHOW GRANTS<\/strong> \u00e9 a forma mais direta de verificar as permiss\u00f5es de um usu\u00e1rio. Ele pode ser executado para o usu\u00e1rio atualmente conectado (sem a cl\u00e1usula <strong>FOR<\/strong>) ou para uma conta espec\u00edfica:<\/p>\n<pre><code>-- Ver permiss\u00f5es do usu\u00e1rio atual\nSHOW GRANTS;\n\n-- Ver permiss\u00f5es de um usu\u00e1rio espec\u00edfico\nSHOW GRANTS FOR 'app_user'@'localhost';<\/code><\/pre>\n<p>Al\u00e9m do <strong>SHOW GRANTS<\/strong>, \u00e9 poss\u00edvel consultar diretamente as tabelas de privil\u00e9gios no banco <strong>mysql<\/strong>. Por exemplo, para listar todas as contas e seus privil\u00e9gios globais, execute:<\/p>\n<pre><code>-- Consultar tabela mysql.user para ver contas e privil\u00e9gios globais\nSELECT User, Host, Select_priv, Insert_priv, Update_priv, Delete_priv, Grant_priv\nFROM mysql.user\nWHERE User NOT IN ('mysql.sys', 'mysql.session', 'mysql.infoschema');\n<\/code><\/pre>\n<p>A sa\u00edda ser\u00e1 uma tabela com uma linha para cada conta, exibindo <strong>Y<\/strong> (sim) ou <strong>N<\/strong> (n\u00e3o) para cada privil\u00e9gio global. Essa abordagem \u00e9 \u00fatil para auditorias em lote, pois permite exportar os dados para ferramentas de an\u00e1lise. Em nossos projetos na JRT Technology Solutions, frequentemente automatizamos consultas como essa para gerar relat\u00f3rios mensais de conformidade de acesso.<\/p>\n<p>Para verificar permiss\u00f5es em n\u00edvel de banco, consulte <strong>mysql.db<\/strong>; para tabelas, <strong>mysql.tables_priv<\/strong>; e para colunas, <strong>mysql.columns_priv<\/strong>. Cada tabela tem uma estrutura ligeiramente diferente, mas todas compartilham as colunas <strong>User<\/strong> e <strong>Host<\/strong> para identificar a conta.<\/p>\n<pre><code>-- Consultar permiss\u00f5es em n\u00edvel de banco de dados\nSELECT User, Host, Db, Select_priv, Insert_priv, Update_priv, Delete_priv\nFROM mysql.db\nWHERE User = 'app_user';\n<\/code><\/pre>\n<p>Essa consulta retornar\u00e1 uma linha para o banco <strong>vendas<\/strong>, mostrando os privil\u00e9gios que foram concedidos no escopo do banco. \u00c9 uma \u00f3tima maneira de auditar o que cada aplica\u00e7\u00e3o pode fazer em cada schema.<\/p>\n<h3>Alterando e Gerenciando Usu\u00e1rios e permiss\u00f5es (ALTER USER, DROP USER, RENAME USER)<\/h3>\n<p>O gerenciamento de <strong>usu\u00e1rios e permiss\u00f5es<\/strong> n\u00e3o se limita a criar e conceder. Muitas vezes precisamos alterar senhas, bloquear contas, renome\u00e1-las ou remov\u00ea-las completamente. O comando <strong>ALTER USER<\/strong> \u00e9 a ferramenta para essas tarefas. Vejamos os casos mais comuns.<\/p>\n<p>Para alterar a senha de um usu\u00e1rio existente, execute:<\/p>\n<pre><code>-- Alterar a senha do app_user\nALTER USER 'app_user'@'localhost' IDENTIFIED BY 'Nova@Senha#2026';<\/code><\/pre>\n<p>Se o usu\u00e1rio esquecer a senha e precisar redefini-la, um administrador com privil\u00e9gio <strong>CREATE USER<\/strong> pode executar o mesmo comando. A sa\u00edda esperada \u00e9 <strong>Query OK, 0 rows affected<\/strong>. Ap\u00f3s a altera\u00e7\u00e3o, a senha antiga deixa de funcionar imediatamente.<\/p>\n<p>Para bloquear uma conta temporariamente, sem remov\u00ea-la, use a cl\u00e1usula <strong>ACCOUNT LOCK<\/strong>. Isso impede que o usu\u00e1rio se autentique, mas mant\u00e9m todos os privil\u00e9gios intactos para quando for desbloqueado:<\/p>\n<pre><code>-- Bloquear a conta app_remote\nALTER USER 'app_remote'@'%' ACCOUNT LOCK;\n\n-- Desbloquear a conta app_remote\nALTER USER 'app_remote'@'%' ACCOUNT UNLOCK;<\/code><\/pre>\n<p>O bloqueio de contas \u00e9 uma pr\u00e1tica recomendada para funcion\u00e1rios em f\u00e9rias, contas de servi\u00e7o em manuten\u00e7\u00e3o ou suspeitas de comprometimento. \u00c9 revers\u00edvel e n\u00e3o afeta os privil\u00e9gios concedidos.<\/p>\n<p>Para renomear uma conta, use <strong>RENAME USER<\/strong>. Isso \u00e9 \u00fatil quando um usu\u00e1rio muda de fun\u00e7\u00e3o ou quando queremos padronizar nomes:<\/p>\n<pre><code>-- Renomear app_user para web_app_user\nRENAME USER 'app_user'@'localhost' TO 'web_app_user'@'localhost';<\/code><\/pre>\n<p>A sa\u00edda:<\/p>\n<pre><code class=\"output\">Query OK, 0 rows affected (0.01 sec)<\/code><\/pre>\n<p>Finalmente, para remover completamente uma conta e todos os seus privil\u00e9gios, use <strong>DROP USER<\/strong>:<\/p>\n<pre><code>-- Remover a conta app_lan\nDROP USER 'app_lan'@'192.168.1.100';<\/code><\/pre>\n<p>Ap\u00f3s a execu\u00e7\u00e3o, a conta n\u00e3o poder\u00e1 mais se conectar. Se houver outros usu\u00e1rios que foram criados por essa conta com <strong>GRANT OPTION<\/strong>, eles n\u00e3o ser\u00e3o afetados diretamente, mas a remo\u00e7\u00e3o de um administrador pode ter implica\u00e7\u00f5es em auditorias. Recomendamos sempre revisar o <strong>SHOW GRANTS<\/strong> antes de executar <strong>DROP USER<\/strong>.<\/p>\n<h3>Configura\u00e7\u00e3o de Autentica\u00e7\u00e3o e Plugins em Usu\u00e1rios e permiss\u00f5es<\/h3>\n<p>O MySQL suporta diferentes plugins de autentica\u00e7\u00e3o que determinam como as credenciais s\u00e3o verificadas. Os mais comuns s\u00e3o:<\/p>\n<table border=\"1\" cellpadding=\"8\" cellspacing=\"0\" style=\"border-collapse: collapse; width: 100%;\">\n<thead>\n<tr>\n<th>Plugin<\/th>\n<th>Descri\u00e7\u00e3o<\/th>\n<th>Uso T\u00edpico<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>caching_sha2_password<\/strong><\/td>\n<td>Padr\u00e3o no MySQL 8.0+. Usa SHA-256 com cache e pode exigir conex\u00e3o segura (TLS) para troca de senha.<\/td>\n<td>Novas instala\u00e7\u00f5es MySQL 8.0+<\/td>\n<\/tr>\n<tr>\n<td><strong>mysql_native_password<\/strong><\/td>\n<td>M\u00e9todo tradicional baseado em SHA-1. Compat\u00edvel com clientes antigos.<\/td>\n<td>Legado ou compatibilidade<\/td>\n<\/tr>\n<tr>\n<td><strong>sha256_password<\/strong><\/td>\n<td>Autentica\u00e7\u00e3o SHA-256 sem cache. Requer TLS ou par de chaves RSA.<\/td>\n<td>Ambientes com alta seguran\u00e7a<\/td>\n<\/tr>\n<tr>\n<td><strong>auth_socket<\/strong><\/td>\n<td>Usa o usu\u00e1rio do sistema operacional para autenticar via socket Unix. N\u00e3o usa senha.<\/td>\n<td>Root local no Ubuntu\/Debian<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>No <strong>Ubuntu\/Debian<\/strong>, a instala\u00e7\u00e3o padr\u00e3o do MySQL configura o usu\u00e1rio root para usar <strong>auth_socket<\/strong>. Isso significa que, ao executar <strong>sudo mysql<\/strong>, o servidor verifica o usu\u00e1rio do sistema operacional (root) e permite a conex\u00e3o sem pedir senha. Essa abordagem \u00e9 segura porque apenas o root do sistema pode acessar o MySQL como root, mas pode surpreender administradores acostumados com o <strong>CentOS\/RHEL<\/strong>, onde o root usa senha e o plugin \u00e9 <strong>caching_sha2_password<\/strong> (ou <strong>mysql_native_password<\/strong> em vers\u00f5es antigas).<\/p>\n<p>Para alterar o plugin de autentica\u00e7\u00e3o de um usu\u00e1rio, utilize <strong>ALTER USER &#8230; IDENTIFIED WITH<\/strong>. Por exemplo, se voc\u00ea precisa que um usu\u00e1rio criado com <strong>caching_sha2_password<\/strong> funcione com um cliente antigo que s\u00f3 suporta <strong>mysql_native_password<\/strong>, execute:<\/p>\n<pre><code>-- Alterar plugin de autentica\u00e7\u00e3o para mysql_native_password\nALTER USER 'web_app_user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Senha@Compart#2026';<\/code><\/pre>\n<p>Tamb\u00e9m \u00e9 poss\u00edvel verificar o plugin atual de cada conta com a consulta:<\/p>\n<pre><code>-- Ver plugin de autentica\u00e7\u00e3o dos usu\u00e1rios\nSELECT User, Host, plugin FROM mysql.user;\n<\/code><\/pre>\n<p>Em nossos projetos na JRT Technology Solutions, recomendamos manter o plugin padr\u00e3o <strong>caching_sha2_password<\/strong> sempre que poss\u00edvel, pois ele oferece maior seguran\u00e7a criptogr\u00e1fica. Apenas em casos de compatibilidade com sistemas legados recorremos ao <strong>mysql_native_password<\/strong>. Al\u00e9m disso, para conex\u00f5es remotas com <strong>caching_sha2_password<\/strong>, pode ser necess\u00e1rio configurar TLS ou usar o par de chaves RSA para a troca inicial de senha, especialmente se a conex\u00e3o n\u00e3o for segura.<\/p>\n<h3>Verificando a Instala\u00e7\u00e3o \/ Testando a Configura\u00e7\u00e3o<\/h3>\n<div style=\"margin:52px 0 40px;padding:36px 28px;background:linear-gradient(135deg,#0f172a 0%,#1a2744 100%);border:2px solid #25D366;border-radius:18px;text-align:center;box-shadow:0 4px 28px rgba(37,211,102,0.18)\">\n<p style=\"margin:0 0 10px;font-size:18px;color:#ffffff;font-weight:700;line-height:1.4\">Quer aprender na pr\u00e1tica com especialistas?<\/p>\n<p style=\"margin:0 0 28px;font-size:15px;color:#94a3b8;font-weight:400;line-height:1.6\">A JRT Technology Solutions oferece treinamentos e implementa\u00e7\u00e3o de MySQL para equipes corporativas.<\/p>\n<p>  <a href=\"https:\/\/api.whatsapp.com\/send\/?phone=5521980606699&#038;text=Ol%C3%A1!%20Tenho%20interesse%20no%20treinamento%20de%20MySQL.&#038;type=phone_number&#038;app_absent=0\"\n     target=\"_blank\" rel=\"noopener noreferrer\"\n     style=\"display:inline-flex;align-items:center;gap:12px;background:#25D366;color:#ffffff;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:16px;font-weight:700;padding:15px 32px;border-radius:100px;text-decoration:none;box-shadow:0 4px 16px rgba(37,211,102,0.45);letter-spacing:0.01em\"><br \/>\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"#ffffff\"><path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z\"\/><\/svg><br \/>\n    Falar no WhatsApp<br \/>\n  <\/a>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Nesta aula vamos mergulhar em um dos pilares mais cr\u00edticos da administra\u00e7\u00e3o de bancos de dados MySQL: o gerenciamento de usu\u00e1rios e permiss\u00f5es. Diferentemente de muitos sistemas que tratam autentica\u00e7\u00e3o e autoriza\u00e7\u00e3o de forma simplificada, o MySQL possui um modelo extremamente granular \u2014 ele permite controlar exatamente o que cada conta pode ou n\u00e3o pode &#8230; <a title=\"Aula 19: Usu\u00e1rios e permiss\u00f5es \u2014 GRANT, REVOKE e seguran\u00e7a\" class=\"read-more\" href=\"https:\/\/jrtx.com.br\/blog\/2026\/08\/13\/aula-19-usuarios-e-permissoes-grant-revoke-e-seguranca\/\" aria-label=\"Read more about Aula 19: Usu\u00e1rios e permiss\u00f5es \u2014 GRANT, REVOKE e seguran\u00e7a\">Ler mais<\/a><\/p>\n","protected":false},"author":1,"featured_media":2240,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"iawp_total_views":0,"footnotes":""},"categories":[75],"tags":[3310],"class_list":["post-2241","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops","tag-mysql-do-zero-ao-avancado-usuarios-e-permissoes-grant-revoke-e-seguranca"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Nesta aula vamos mergulhar em um dos pilares mais cr\u00edticos da administra\u00e7\u00e3o de bancos de dados MySQL: o gerenciamento de usu\u00e1rios e permiss\u00f5es. Diferentemente de muitos sistemas que tratam autentica\u00e7\u00e3o e autoriza\u00e7\u00e3o de forma simplificada, o MySQL possui um modelo extremamente granular \u2014 ele permite controlar exatamente o que cada conta pode ou n\u00e3o pode\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Thiago Paes Rodrigues\"\/>\n\t<meta name=\"google-site-verification\" content=\"QKPfpDCzHmzKyfFk5j1KZW3HhROYTPeqwBN5qcJ8qcg\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/jrtx.com.br\/blog\/2026\/08\/13\/aula-19-usuarios-e-permissoes-grant-revoke-e-seguranca\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_BR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"BLOG - JRT Technology Solutions - Um espa\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\u00e1tica e atual. Aqui voc\u00ea encontra novidades, an\u00e1lises, tutoriais e reflex\u00f5es sobre inova\u00e7\u00e3o, intelig\u00eancia artificial, gadgets, programa\u00e7\u00e3o e tend\u00eancias digitais. Nosso objetivo \u00e9 simplificar o complexo, ajudar voc\u00ea a se manter atualizado e transformar conhecimento em pr\u00e1tica no seu dia a dia.\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Aula 19: Usu\u00e1rios e permiss\u00f5es \u2014 GRANT, REVOKE e seguran\u00e7a - BLOG - JRT Technology Solutions\" \/>\n\t\t<meta property=\"og:description\" content=\"Nesta aula vamos mergulhar em um dos pilares mais cr\u00edticos da administra\u00e7\u00e3o de bancos de dados MySQL: o gerenciamento de usu\u00e1rios e permiss\u00f5es. Diferentemente de muitos sistemas que tratam autentica\u00e7\u00e3o e autoriza\u00e7\u00e3o de forma simplificada, o MySQL possui um modelo extremamente granular \u2014 ele permite controlar exatamente o que cada conta pode ou n\u00e3o pode\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/jrtx.com.br\/blog\/2026\/08\/13\/aula-19-usuarios-e-permissoes-grant-revoke-e-seguranca\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"100\" \/>\n\t\t<meta property=\"og:image:height\" content=\"75\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-08-13T21:15:55+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-08-13T21:15:55+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/profile.php?id=61590814880509\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Aula 19: Usu\u00e1rios e permiss\u00f5es \u2014 GRANT, REVOKE e seguran\u00e7a - BLOG - JRT Technology Solutions\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Nesta aula vamos mergulhar em um dos pilares mais cr\u00edticos da administra\u00e7\u00e3o de bancos de dados MySQL: o gerenciamento de usu\u00e1rios e permiss\u00f5es. Diferentemente de muitos sistemas que tratam autentica\u00e7\u00e3o e autoriza\u00e7\u00e3o de forma simplificada, o MySQL possui um modelo extremamente granular \u2014 ele permite controlar exatamente o que cada conta pode ou n\u00e3o pode\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/13\\\/aula-19-usuarios-e-permissoes-grant-revoke-e-seguranca\\\/#blogposting\",\"name\":\"Aula 19: Usu\\u00e1rios e permiss\\u00f5es \\u2014 GRANT, REVOKE e seguran\\u00e7a - BLOG - JRT Technology Solutions\",\"headline\":\"Aula 19: Usu\\u00e1rios e permiss\\u00f5es \\u2014 GRANT, REVOKE e seguran\\u00e7a\",\"author\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/ai-image-1786655751235.jpg\",\"width\":1440,\"height\":1024,\"caption\":\"Aula 19: Usu\\u00e1rios e permiss\\u00f5es \\u2014 GRANT, REVOKE e seguran\\u00e7a\"},\"datePublished\":\"2026-08-13T18:15:55-03:00\",\"dateModified\":\"2026-08-13T18:15:55-03:00\",\"inLanguage\":\"pt-BR\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/13\\\/aula-19-usuarios-e-permissoes-grant-revoke-e-seguranca\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/13\\\/aula-19-usuarios-e-permissoes-grant-revoke-e-seguranca\\\/#webpage\"},\"articleSection\":\"DevOps, MySQL \\u2014 Do Zero ao Avan\\u00e7ado: Usu\\u00e1rios e permiss\\u00f5es \\u2014 GRANT, REVOKE e seguran\\u00e7a\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/13\\\/aula-19-usuarios-e-permissoes-grant-revoke-e-seguranca\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/jrtx.com.br\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/category\\\/devops\\\/#listItem\",\"name\":\"DevOps\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/category\\\/devops\\\/#listItem\",\"position\":2,\"name\":\"DevOps\",\"item\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/category\\\/devops\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/13\\\/aula-19-usuarios-e-permissoes-grant-revoke-e-seguranca\\\/#listItem\",\"name\":\"Aula 19: Usu\\u00e1rios e permiss\\u00f5es \\u2014 GRANT, REVOKE e seguran\\u00e7a\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/13\\\/aula-19-usuarios-e-permissoes-grant-revoke-e-seguranca\\\/#listItem\",\"position\":3,\"name\":\"Aula 19: Usu\\u00e1rios e permiss\\u00f5es \\u2014 GRANT, REVOKE e seguran\\u00e7a\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/category\\\/devops\\\/#listItem\",\"name\":\"DevOps\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#organization\",\"name\":\"JRT Technology Solutions | Tecnologia e Inova\\u00e7\\u00e3o para Empresas\",\"description\":\"Um espa\\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\\u00e1tica e atual. Aqui voc\\u00ea encontra novidades, an\\u00e1lises, tutoriais e reflex\\u00f5es sobre inova\\u00e7\\u00e3o, intelig\\u00eancia artificial, gadgets, programa\\u00e7\\u00e3o e tend\\u00eancias digitais. Nosso objetivo \\u00e9 simplificar o complexo, ajudar voc\\u00ea a se manter atualizado e transformar conhecimento em pr\\u00e1tica no seu dia a dia.\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/\",\"telephone\":\"+552138277513\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/cropped-logo-mini.jpg\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/13\\\/aula-19-usuarios-e-permissoes-grant-revoke-e-seguranca\\\/#organizationLogo\",\"width\":100,\"height\":75},\"image\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/13\\\/aula-19-usuarios-e-permissoes-grant-revoke-e-seguranca\\\/#organizationLogo\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/profile.php?id=61590814880509\",\"https:\\\/\\\/www.instagram.com\\\/jrtx.tech\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/#author\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/\",\"name\":\"Thiago Paes Rodrigues\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/13\\\/aula-19-usuarios-e-permissoes-grant-revoke-e-seguranca\\\/#authorImage\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/cropped-foto-rascunho3-96x96.jpeg\",\"width\":96,\"height\":96,\"caption\":\"Thiago Paes Rodrigues\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/13\\\/aula-19-usuarios-e-permissoes-grant-revoke-e-seguranca\\\/#webpage\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/13\\\/aula-19-usuarios-e-permissoes-grant-revoke-e-seguranca\\\/\",\"name\":\"Aula 19: Usu\\u00e1rios e permiss\\u00f5es \\u2014 GRANT, REVOKE e seguran\\u00e7a - BLOG - JRT Technology Solutions\",\"description\":\"Nesta aula vamos mergulhar em um dos pilares mais cr\\u00edticos da administra\\u00e7\\u00e3o de bancos de dados MySQL: o gerenciamento de usu\\u00e1rios e permiss\\u00f5es. Diferentemente de muitos sistemas que tratam autentica\\u00e7\\u00e3o e autoriza\\u00e7\\u00e3o de forma simplificada, o MySQL possui um modelo extremamente granular \\u2014 ele permite controlar exatamente o que cada conta pode ou n\\u00e3o pode\",\"inLanguage\":\"pt-BR\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/13\\\/aula-19-usuarios-e-permissoes-grant-revoke-e-seguranca\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/ai-image-1786655751235.jpg\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/13\\\/aula-19-usuarios-e-permissoes-grant-revoke-e-seguranca\\\/#mainImage\",\"width\":1440,\"height\":1024,\"caption\":\"Aula 19: Usu\\u00e1rios e permiss\\u00f5es \\u2014 GRANT, REVOKE e seguran\\u00e7a\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/13\\\/aula-19-usuarios-e-permissoes-grant-revoke-e-seguranca\\\/#mainImage\"},\"datePublished\":\"2026-08-13T18:15:55-03:00\",\"dateModified\":\"2026-08-13T18:15:55-03:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/\",\"name\":\"JRT Technology Solutions | Tecnologia e Inova\\u00e7\\u00e3o para Empresas\",\"alternateName\":\"JRT Technology Solutions | Tecnologia e Inova\\u00e7\\u00e3o para Empresas\",\"description\":\"Um espa\\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\\u00e1tica e atual. Aqui voc\\u00ea encontra novidades, an\\u00e1lises, tutoriais e reflex\\u00f5es sobre inova\\u00e7\\u00e3o, intelig\\u00eancia artificial, gadgets, programa\\u00e7\\u00e3o e tend\\u00eancias digitais. Nosso objetivo \\u00e9 simplificar o complexo, ajudar voc\\u00ea a se manter atualizado e transformar conhecimento em pr\\u00e1tica no seu dia a dia.\",\"inLanguage\":\"pt-BR\",\"publisher\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Aula 19: Usu\u00e1rios e permiss\u00f5es \u2014 GRANT, REVOKE e seguran\u00e7a - BLOG - JRT Technology Solutions","description":"Nesta aula vamos mergulhar em um dos pilares mais cr\u00edticos da administra\u00e7\u00e3o de bancos de dados MySQL: o gerenciamento de usu\u00e1rios e permiss\u00f5es. Diferentemente de muitos sistemas que tratam autentica\u00e7\u00e3o e autoriza\u00e7\u00e3o de forma simplificada, o MySQL possui um modelo extremamente granular \u2014 ele permite controlar exatamente o que cada conta pode ou n\u00e3o pode","canonical_url":"https:\/\/jrtx.com.br\/blog\/2026\/08\/13\/aula-19-usuarios-e-permissoes-grant-revoke-e-seguranca\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"google-site-verification":"QKPfpDCzHmzKyfFk5j1KZW3HhROYTPeqwBN5qcJ8qcg","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/13\/aula-19-usuarios-e-permissoes-grant-revoke-e-seguranca\/#blogposting","name":"Aula 19: Usu\u00e1rios e permiss\u00f5es \u2014 GRANT, REVOKE e seguran\u00e7a - BLOG - JRT Technology Solutions","headline":"Aula 19: Usu\u00e1rios e permiss\u00f5es \u2014 GRANT, REVOKE e seguran\u00e7a","author":{"@id":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/#author"},"publisher":{"@id":"https:\/\/jrtx.com.br\/blog\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/08\/ai-image-1786655751235.jpg","width":1440,"height":1024,"caption":"Aula 19: Usu\u00e1rios e permiss\u00f5es \u2014 GRANT, REVOKE e seguran\u00e7a"},"datePublished":"2026-08-13T18:15:55-03:00","dateModified":"2026-08-13T18:15:55-03:00","inLanguage":"pt-BR","mainEntityOfPage":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/13\/aula-19-usuarios-e-permissoes-grant-revoke-e-seguranca\/#webpage"},"isPartOf":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/13\/aula-19-usuarios-e-permissoes-grant-revoke-e-seguranca\/#webpage"},"articleSection":"DevOps, MySQL \u2014 Do Zero ao Avan\u00e7ado: Usu\u00e1rios e permiss\u00f5es \u2014 GRANT, REVOKE e seguran\u00e7a"},{"@type":"BreadcrumbList","@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/13\/aula-19-usuarios-e-permissoes-grant-revoke-e-seguranca\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog#listItem","position":1,"name":"Home","item":"https:\/\/jrtx.com.br\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/category\/devops\/#listItem","name":"DevOps"}},{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/category\/devops\/#listItem","position":2,"name":"DevOps","item":"https:\/\/jrtx.com.br\/blog\/category\/devops\/","nextItem":{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/13\/aula-19-usuarios-e-permissoes-grant-revoke-e-seguranca\/#listItem","name":"Aula 19: Usu\u00e1rios e permiss\u00f5es \u2014 GRANT, REVOKE e seguran\u00e7a"},"previousItem":{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/13\/aula-19-usuarios-e-permissoes-grant-revoke-e-seguranca\/#listItem","position":3,"name":"Aula 19: Usu\u00e1rios e permiss\u00f5es \u2014 GRANT, REVOKE e seguran\u00e7a","previousItem":{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/category\/devops\/#listItem","name":"DevOps"}}]},{"@type":"Organization","@id":"https:\/\/jrtx.com.br\/blog\/#organization","name":"JRT Technology Solutions | Tecnologia e Inova\u00e7\u00e3o para Empresas","description":"Um espa\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\u00e1tica e atual. Aqui voc\u00ea encontra novidades, an\u00e1lises, tutoriais e reflex\u00f5es sobre inova\u00e7\u00e3o, intelig\u00eancia artificial, gadgets, programa\u00e7\u00e3o e tend\u00eancias digitais. Nosso objetivo \u00e9 simplificar o complexo, ajudar voc\u00ea a se manter atualizado e transformar conhecimento em pr\u00e1tica no seu dia a dia.","url":"https:\/\/jrtx.com.br\/blog\/","telephone":"+552138277513","logo":{"@type":"ImageObject","url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg","@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/13\/aula-19-usuarios-e-permissoes-grant-revoke-e-seguranca\/#organizationLogo","width":100,"height":75},"image":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/13\/aula-19-usuarios-e-permissoes-grant-revoke-e-seguranca\/#organizationLogo"},"sameAs":["https:\/\/www.facebook.com\/profile.php?id=61590814880509","https:\/\/www.instagram.com\/jrtx.tech\/"]},{"@type":"Person","@id":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/#author","url":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/","name":"Thiago Paes Rodrigues","image":{"@type":"ImageObject","@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/13\/aula-19-usuarios-e-permissoes-grant-revoke-e-seguranca\/#authorImage","url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/09\/cropped-foto-rascunho3-96x96.jpeg","width":96,"height":96,"caption":"Thiago Paes Rodrigues"}},{"@type":"WebPage","@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/13\/aula-19-usuarios-e-permissoes-grant-revoke-e-seguranca\/#webpage","url":"https:\/\/jrtx.com.br\/blog\/2026\/08\/13\/aula-19-usuarios-e-permissoes-grant-revoke-e-seguranca\/","name":"Aula 19: Usu\u00e1rios e permiss\u00f5es \u2014 GRANT, REVOKE e seguran\u00e7a - BLOG - JRT Technology Solutions","description":"Nesta aula vamos mergulhar em um dos pilares mais cr\u00edticos da administra\u00e7\u00e3o de bancos de dados MySQL: o gerenciamento de usu\u00e1rios e permiss\u00f5es. Diferentemente de muitos sistemas que tratam autentica\u00e7\u00e3o e autoriza\u00e7\u00e3o de forma simplificada, o MySQL possui um modelo extremamente granular \u2014 ele permite controlar exatamente o que cada conta pode ou n\u00e3o pode","inLanguage":"pt-BR","isPartOf":{"@id":"https:\/\/jrtx.com.br\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/13\/aula-19-usuarios-e-permissoes-grant-revoke-e-seguranca\/#breadcrumblist"},"author":{"@id":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/#author"},"creator":{"@id":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/08\/ai-image-1786655751235.jpg","@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/13\/aula-19-usuarios-e-permissoes-grant-revoke-e-seguranca\/#mainImage","width":1440,"height":1024,"caption":"Aula 19: Usu\u00e1rios e permiss\u00f5es \u2014 GRANT, REVOKE e seguran\u00e7a"},"primaryImageOfPage":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/13\/aula-19-usuarios-e-permissoes-grant-revoke-e-seguranca\/#mainImage"},"datePublished":"2026-08-13T18:15:55-03:00","dateModified":"2026-08-13T18:15:55-03:00"},{"@type":"WebSite","@id":"https:\/\/jrtx.com.br\/blog\/#website","url":"https:\/\/jrtx.com.br\/blog\/","name":"JRT Technology Solutions | Tecnologia e Inova\u00e7\u00e3o para Empresas","alternateName":"JRT Technology Solutions | Tecnologia e Inova\u00e7\u00e3o para Empresas","description":"Um espa\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\u00e1tica e atual. Aqui voc\u00ea encontra novidades, an\u00e1lises, tutoriais e reflex\u00f5es sobre inova\u00e7\u00e3o, intelig\u00eancia artificial, gadgets, programa\u00e7\u00e3o e tend\u00eancias digitais. Nosso objetivo \u00e9 simplificar o complexo, ajudar voc\u00ea a se manter atualizado e transformar conhecimento em pr\u00e1tica no seu dia a dia.","inLanguage":"pt-BR","publisher":{"@id":"https:\/\/jrtx.com.br\/blog\/#organization"}}]},"og:locale":"pt_BR","og:site_name":"BLOG - JRT Technology Solutions - Um espa\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\u00e1tica e atual. Aqui voc\u00ea encontra novidades, an\u00e1lises, tutoriais e reflex\u00f5es sobre inova\u00e7\u00e3o, intelig\u00eancia artificial, gadgets, programa\u00e7\u00e3o e tend\u00eancias digitais. Nosso objetivo \u00e9 simplificar o complexo, ajudar voc\u00ea a se manter atualizado e transformar conhecimento em pr\u00e1tica no seu dia a dia.","og:type":"article","og:title":"Aula 19: Usu\u00e1rios e permiss\u00f5es \u2014 GRANT, REVOKE e seguran\u00e7a - BLOG - JRT Technology Solutions","og:description":"Nesta aula vamos mergulhar em um dos pilares mais cr\u00edticos da administra\u00e7\u00e3o de bancos de dados MySQL: o gerenciamento de usu\u00e1rios e permiss\u00f5es. Diferentemente de muitos sistemas que tratam autentica\u00e7\u00e3o e autoriza\u00e7\u00e3o de forma simplificada, o MySQL possui um modelo extremamente granular \u2014 ele permite controlar exatamente o que cada conta pode ou n\u00e3o pode","og:url":"https:\/\/jrtx.com.br\/blog\/2026\/08\/13\/aula-19-usuarios-e-permissoes-grant-revoke-e-seguranca\/","og:image":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg","og:image:secure_url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg","og:image:width":100,"og:image:height":75,"article:published_time":"2026-08-13T21:15:55+00:00","article:modified_time":"2026-08-13T21:15:55+00:00","article:publisher":"https:\/\/www.facebook.com\/profile.php?id=61590814880509","twitter:card":"summary_large_image","twitter:title":"Aula 19: Usu\u00e1rios e permiss\u00f5es \u2014 GRANT, REVOKE e seguran\u00e7a - BLOG - JRT Technology Solutions","twitter:description":"Nesta aula vamos mergulhar em um dos pilares mais cr\u00edticos da administra\u00e7\u00e3o de bancos de dados MySQL: o gerenciamento de usu\u00e1rios e permiss\u00f5es. Diferentemente de muitos sistemas que tratam autentica\u00e7\u00e3o e autoriza\u00e7\u00e3o de forma simplificada, o MySQL possui um modelo extremamente granular \u2014 ele permite controlar exatamente o que cada conta pode ou n\u00e3o pode","twitter:image":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg"},"aioseo_meta_data":{"post_id":"2241","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_custom_url":null,"og_image_custom_fields":null,"og_image_url":null,"og_image_width":null,"og_image_height":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_image_url":null,"twitter_title":null,"twitter_description":null,"schema_type":"default","schema_type_options":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null,"created":"2026-08-15 14:29:49","updated":"2026-08-15 14:29:49","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/jrtx.com.br\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/jrtx.com.br\/blog\/category\/devops\/\" title=\"DevOps\">DevOps<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tAula 19: Usu\u00e1rios e permiss\u00f5es \u2014 GRANT, REVOKE e seguran\u00e7a\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/jrtx.com.br\/blog"},{"label":"DevOps","link":"https:\/\/jrtx.com.br\/blog\/category\/devops\/"},{"label":"Aula 19: Usu\u00e1rios e permiss\u00f5es \u2014 GRANT, REVOKE e seguran\u00e7a","link":"https:\/\/jrtx.com.br\/blog\/2026\/08\/13\/aula-19-usuarios-e-permissoes-grant-revoke-e-seguranca\/"}],"_links":{"self":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/posts\/2241","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/comments?post=2241"}],"version-history":[{"count":0,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/posts\/2241\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/media\/2240"}],"wp:attachment":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/media?parent=2241"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/categories?post=2241"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/tags?post=2241"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}