Criar utilizador no MYSQL com CREATE USER
Para criar um novo utilizador no MySQL, é necessário ter acesso à base de dados. Além disso, também é necessário ter privilégios de utilizador root, com os quais é possível criar contas de utilizador e gerir as permissões atribuídas. Da mesma forma, é importante saber que tipo de permissão será concedida ao novo utilizador: permissões de leitura, permissões de escrita ou até mesmo permissões de administrador.
Criar um utilizador com MySQL
Ao instalar o sistema gestor de bases de dados, o MySQL cria uma conta root com controlo total sobre as bases de dados, tabelas e utilizadores. Se precisar de ajuda com a instalação, encontrará todas as informações importantes no seguinte guia para aprender a utilizar o MySQL.
Com uma conta root, pode criar novas contas de utilizador MySQL e atribuir-lhes uma série de permissões. É importante saber que nos sistemas Ubuntu com MySQL 5.7 e versões posteriores, a autenticação do utilizador root não é feita com senha, mas com o plugin auth_socket. Para que a autenticação seja realizada com sucesso, o nome do utilizador do sistema que deseja usar o cliente MySQL deve coincidir com o nome do utilizador MySQL especificado no comando. Ou seja, para poder aceder à conta root, é importante antepor o comando sudo:
$ sudo mysqlbashPara criar um novo utilizador no MySQL, utilize o comando CREATE USER, com o qual poderá criar um utilizador com um nome de utilizador e uma palavra-passe específicos:
mysql> CREATE USER 'nombreusuario'@'host' IDENTIFIED WITH authentication_plugin BY 'contraseña';bashSubstitua «nombreusuario» por um nome de utilizador à sua escolha. Em seguida, introduza em host o nome do host a partir do qual o novo utilizador se irá ligar. Se o utilizador só puder aceder a partir do seu servidor Ubuntu local, pode introduzir localhost.
Existem várias opções disponíveis de plug-ins de autenticação. Embora o plug-in auth_socket ofereça um alto nível de segurança, já que os utilizadores devem introduzir uma senha para acessar o banco de dados, ele também impede conexões remotas. Isso pode resultar em um esforço maior quando programas externos precisam interagir com o MySQL. Como alternativa, pode omitir a parte do comando WITH authentication_plugin para que o utilizador realize a autenticação com o plugin padrão do MySQL caching_sha2_password. O comando, neste caso, é mostrado a seguir:
mysql> CREATE USER 'sammy'@'localhost' IDENTIFIED BY 'password';bashDepois de criar um novo utilizador, é hora de atribuir uma série de permissões a ele.
Atribuir permissões de utilizador com MySQL create user
Para garantir a segurança dos dados no MySQL, é muito importante criar e gerir permissões de utilizador. O comando para atribuir permissões de utilizador é:
mysql> GRANT PRIVILEGE ON database.table TO 'nombreusuario'@'host';bashO valor PRIVILEGE determina quais privilégios o utilizador tem na base de dados e tabela especificadas. Pode substituir este valor pelos seguintes comandos, entre outros:
CREATE: permite aos utilizadores criar uma base de dados ou tabela.SELECT: permite aos utilizadores aceder aos dados.INSERT: permite aos utilizadores adicionar novas entradas às tabelas.UPDATE: permite aos utilizadores alterar entradas existentes nas tabelas.DEELETE: permite aos utilizadores eliminar entradas da tabela.DROP: permite aos utilizadores eliminar tabelas completas da base de dados.
Você também pode conceder vários privilégios de uma só vez aos novos utilizadores. Use o mesmo comando, mas separe cada privilégio com uma vírgula:
mysql> GRANT SELECT, INSERT, UPDATE ON database.table TO 'nombre_usuario'@'host';bashSe desejar, pode conceder os privilégios estipulados para todas as bases de dados ou tabelas num único comando. Basta introduzir * em vez dos nomes da base de dados e das tabelas. No comando seguinte, por exemplo, um utilizador é autorizado a consultar dados em todas as bases de dados e tabelas com SELECT, bem como a adicionar novas entradas com INSERT e a modificar entradas existentes com UPDATE.
mysql> GRANT SELECT, INSERT, UPDATE ON *.* TO nombredeusuario@'host';bashDepois de executar no MySQL CREATE USER ou GRANT, pode utilizar o comando FLUSH PRIVILEGES para atualizar a base de dados e atualizar as tabelas de privilégios. Desta forma, as novas permissões entram em vigor:
mysql> FLUSH PRIVILEGES;bashNo entanto, é importante que os utilizadores tenham apenas as permissões de que necessitam. Afinal, ao conceder determinados privilégios aos utilizadores, também está a aumentar o risco de segurança.
Criar utilizador MySQL: revogar permissões de utilizador
O comando REVOKE é utilizado para revogar permissões de utilizador no MySQL. A sintaxe é semelhante à do comando GRANT. No entanto, neste caso, deve utilizar FROM em vez de TO:
mysql> REVOKE type_of_permission ON nombre_base_de_datos.nombre_tabla FROM 'nombreusuario'@'host';bashPara mostrar as permissões atuais de um utilizador, pode utilizar o comando SHOW GRANTS:
mysql> SHOW GRANTS FOR 'nombreusuario'@'host';bashO comando DROP é utilizado para eliminar um utilizador:
mysql> DROP USUARIO 'nombreusuario'@'localhost';bashNo entanto, a eliminação de utilizadores deve ser realizada com muito cuidado, especialmente no caso de utilizadores com privilégios administrativos. Evite a perda acidental de dados, certificando-se de que elimina o utilizador que realmente deseja.
Depois de criar um novo utilizador MySQL e conceder-lhe permissões, pode sair do cliente MySQL:
mysql> exitbash