Pular para o conteúdo principal
Documentos
FunçõesExpressõesKeywordsDeclaraçõesCláusulas

Declaração MySQL GRANT

A instrução GRANT no MySQL é usada para atribuir privilégios às contas de usuário do MySQL. Ele define quais operações os usuários podem executar em objetos de banco de dados, como tabelas e exibições, garantindo o acesso controlado ao banco de dados.

Uso

A instrução GRANT é usada quando você precisa dar permissões a usuários específicos para executar determinados tipos de operações SQL. Ele ajuda a gerenciar os direitos do usuário de forma eficiente e segura.

GRANT privileges
ON database_name.table_name
TO 'user'@'host'
[IDENTIFIED BY 'password'];

Nessa sintaxe, privileges são as permissões concedidas, database_name.table_name especifica o escopo, user é o nome de usuário do MySQL e host é o local a partir do qual o usuário se conecta. Observe que a cláusula IDENTIFIED BY 'password' só é aplicável ao criar um novo usuário. No MySQL 8.0 e posterior, recomenda-se que você use CREATE USER seguido de GRANT para a criação de usuários e atribuição de privilégios.

Exemplos

1. Concessão de privilégios básicos

GRANT SELECT, INSERT
ON mydb.mytable
TO 'user1'@'localhost';

Este exemplo concede a você os privilégios SELECT e INSERT em mydb.mytable para user1 conectando-se a partir de localhost.

2. Concessão de todos os privilégios em um banco de dados

GRANT ALL PRIVILEGES
ON mydb.*
TO 'user2'@'192.168.1.1';

Aqui, o user2 recebe todos os privilégios em todo o banco de dados mydb do host 192.168.1.1.

3. Concessão de privilégios com senha

GRANT SELECT, UPDATE
ON mydb.mytable
TO 'user3'@'%' IDENTIFIED BY 'securepassword';

Essa instrução concede a SELECT e UPDATE privilégios em mydb.mytable a user3 de qualquer host (%), definindo uma senha especificada. O uso do % permite conexões de qualquer host, o que pode ter implicações de segurança.

Informações adicionais

Privilégios globais

Para conceder privilégios globais que se aplicam a todos os bancos de dados, use a sintaxe ON *.*. Isso concede os privilégios especificados globalmente.

Revogação de privilégios

Para revogar privilégios, use o comando REVOKE:

REVOKE privileges
ON database_name.table_name
FROM 'user'@'host';

Isso remove os privilégios especificados do usuário.

Dicas e práticas recomendadas

  • Limite os privilégios. Conceda apenas os privilégios necessários aos usuários para minimizar os riscos de segurança.
  • Use nomes de host específicos. Sempre que possível, especifique nomes de host ou endereços IP para restringir o acesso, em vez de usar % para todos os hosts.
  • Gerencie as senhas com segurança. Sempre use senhas fortes e exclusivas ao configurar contas de usuário.
  • Revise regularmente as permissões. Faça auditorias periódicas e revogue privilégios desnecessários para manter a segurança ideal. Utilize a tabela mysql.user ou as visualizações do esquema de informações relevantes para analisar os privilégios de usuário existentes.
  • Alterações no documento. Mantenha um registro de todas as declarações GRANT emitidas para facilitar o rastreamento das permissões.

Aprimoramento de SQL para iniciantes

Adquira as habilidades de SQL para interagir com seus dados e consultá-los.
Comece a aprender de graça