anúncios

sábado, 4 de novembro de 2017

Criando e atribuindo permissões para o usuário no SGBD MySQL/MariaBD

O presente post, tem como objetivo esclarecer como criar usuário e atribuir permissões para o usuário no SGBD MySQL/MariaDB.

Sobre o MySQL e MariaDB

O MySQL é um Sistema de Gerenciamento de Banco de Dados (SGBD) open source que ajuda os usuários a armazenar, organizar, e posteriormente, recuperar dados. Ele possui uma variedade de opções para conceder a usuários específicos permissões diferenciadas dentro de tabelas e bases de dados. O MariaDB é o fork do MySQL. Na maioria dos aspectos o MariaDB vai funcionar exatamente como o MySQL: todos os comandos, interfaces, bibliotecas e APIs que existem no MySQL também existem no MariaDB. Não há nenhuma necessidade de converter um bancos de dados para migrar para o MariaDB. MariaDB é um verdadeiro substituto para o MySQL.

Primeiramente precisa conectar no servidor SGBD MySQL/MariaDB: mysql -h IPSERVIDORBD -u root -p

Para criar um usuário no SGBD MySQL/MariaDB, após logar com o root é o seguinte comando:
CREATE USER `nome-usuario`@`IPServerDB` IDENTIFIED BY `password`;

Para dar uma permissão a um usuário específico, você pode utilizar esta estrutura:
GRANT [tipo de permissão] ON [nome da base de dados].[nome da tabela] TO `[nome do usuário]`@`IPServerDB`;

Se você quer dar a ele acesso a qualquer base de dados ou a qualquer tabela, certifique-se de colocar um asterisco (*) no lugar do nome da base de dados ou do nome da tabela. Cada vez que você atualizar ou mudar uma permissão certifique-se de utilizar o comando Flush Privileges.

Se você precisar revogar uma permissão, a estrutura é quase idêntica a concedê-la:
REVOKE [tipo de permissão] ON [nome da base de dados].[nome da tabela] FROM `[nome do usuário]`@`IP`;

Para adicionar permissão de leitura, inserção, atualização, exclusão, criação de tabelas/bases, remoção e alteração de tabelas/colunas para o usuário:
GRANT select, insert, update, delete, create, drop, alter ON .* TO `nomeUsuarioBD`@`%IPMaquinaAcessoServerBD` WITH GRANT OPTION;

Para adicionar permissão geral a um usuário:
GRANT ALL PRIVILEGES ON *.* TO @IPServerBD IDENTIFIED BY `password` WITH GRANT OPTION;

Para visualizar as permissões que acabamos de aplicar usamos o comando:
SHOW GRANTS FOR `usuarioBD`@`%IPMaquinaAcessoServerBD`;

Se você precisar retirar todos os privilégios de um usuário do SGBD MySQL/MariaDB, pode utilizar esta estrutura:
USAGE [tipo de permissão] ON [nome da base de dados].[nome da tabela] FROM `[nome do usuário]`@`IP`;
A permissão USAGE significa sem privilégios.

Os comandos necessários para criar usuário, conceder/revogar permissões a um banco de dados e tabelas foram apresentados neste post. Espero que possa ser útil para quem desconhecia.

Feito!