Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Permissões de usuário do MySQL


Vamos ver como conceder permissões (chamadas de privilégios) a um usuário do banco de dados MySQL

Por padrão quando você cria um novo usuário MySQL usando a sintaxe
CREATE USER '<username>'@'localhost' IDENTIFIED BY '<password>';

o usuário não pode fazer muito. Podemos dizer que não pode a nada, na verdade.

Ele não pode ler dados de nenhum banco de dados existente, muito menos modificar os dados. E não pode nem criar um novo banco de dados.

Para obrigar um usuário a fazer qualquer coisa, você precisa conceder privilégios para isso.

Você pode fazer isso usando o GRANT comando.

Podemos usar GRANT <permission> , usando as seguintes palavras-chave de permissão:
  • CREATE
  • DROP
  • DELETE
  • INSERT
  • SELECT
  • UPDATE
  • ALL PRIVILEGES

Conceder privilégio para criar novos bancos de dados a um usuário

GRANT CREATE ON *.* TO '<username>'@'localhost';

Conceder privilégios a um usuário para criar novas tabelas em um banco de dados específico

GRANT CREATE ON <database>.* TO '<username>'@'localhost';

Conceder privilégio para ler (consultar) um banco de dados específico a um usuário

GRANT SELECT ON <database>.* TO '<username>'@'localhost';

Conceder privilégio para ler um banco de dados específico table para um usuário

GRANT SELECT ON <database>.<table> TO '<username>'@'localhost';

Conceder privilégio para inserir, atualizar e excluir linhas em um banco de dados específico para um usuário

GRANT INSERT, UPDATE, DELETE ON <database>.* TO '<username>'@'localhost';

Conceder privilégio para excluir tabelas em um banco de dados específico para um usuário

GRANT DROP ON <database>.* TO '<username>'@'localhost';

Conceder privilégio para excluir bancos de dados a um usuário

GRANT DROP ON *.* TO '<username>'@'localhost';

Conceder todos os privilégios em um banco de dados específico a um usuário

GRANT ALL PRIVILEGES ON <database>.* TO '<username>'@'localhost';

Conceder todos os privilégios a um usuário

GRANT ALL PRIVILEGES ON *.* TO '<username>'@'localhost';

Revogar um privilégio


Exemplo para revogar o DROP privilégio em <database> :
REVOKE DROP ON <database>.* TO '<username>'@'localhost';

Para revogar todos os privilégios, execute:
REVOKE ALL PRIVILEGES ON *.* TO '<username>'@'localhost';

Você pode visualizar os privilégios de um único usuário executando:
SHOW GRANTS FOR '<username>'@'localhost';