Neste tutorial será mostrado como criar um usuário em um servidor MySql e dar permissão para que ele tenha acesso apenas a um determinado banco de dados.
Primeiro criaremos um banco como exemplo para dar acesso a um usuário.
Para logar no mysql-server com a conta de root usando o mysql-client digite no terminal:
# mysql -h [hostname] -u root -p
O parâmetro -h é usado para especificar o host em que está instalado o mysql server. [hostname] deve ser substituído pelo IP ou o endereço da máquina aonde está o banco. Caso você esteja na máquina aonde ele está instalado essa opção não precisa ser colocada.
Após digitar o comando aperte [Enter] e ele pedirá a senha de root do mysql, digite a senha e você estará logado no servidor.
Para criar o banco de dados que será usado como teste use o seguinte comando:
create database teste;
Iremos criar uma tabela para deixar como teste, para é primeiro necessário selecionar o banco que será usado e depois criar a tabela, para isso digite:
use teste;
create table tableteste
(
id int unsigned not null auto_increment primary key,
nome varchar(20),
telefone varchar(20)
);
Tendo criado o banco e a tabela podemos passar aos privilégios. Para dar privilégios a um usuário no mysql usamos o comando grant ou revoque para tirar.
Vamos criar um usuário chamado “teste” e dar todos os privilégios a ele somente sobre o banco “teste”. Para isso é utilizado o seguinte comando:
grant all privileges on teste.* to teste identified by '123456';
O comando acima dá todos os privilégios no banco de dados teste para um usuário chamado teste. O parâmetro identified especifica a senha desse novo usuário. O “teste.*” está dizendo que os privilégios serão dados sobre o banco “teste” em todas as tabelas, o “*” está sendo usado como um coringa que pode representar qualquer coisa.
Também poderia ser acrestado ao final dessa linha os comandos:
with grant option;
Isso daria ao usuário “teste” o direito de dar os mesmos privilégios que ele possui a outros usuários. O comando completo ficaria assim:
grant all privileges on teste.* to teste identified by '123456' with grant option;
Se tudo correr bem o mysql retornará a seguinte mensagem (ou algo pareceido):
Query OK, 0 rows affected (0.04 sec)
Agora para testar faça logoff do usuário root usando o comando “quit” e entre novamente usando o usuário “teste”. Para isso digite:
mysql -h [hostname] -u teste -p
Quando pedir a senha digite “123456” (sem as aspas). Digite o comando “show databases” para mostrar os bancos de dados a que você tem acesso. Você verá que só irá aparecer o banco teste e outro banco com informações do sistema. Daí você pode fazer outros testes criando novas tabelas e inserindo linhas nas tabelas para perceber que o usuário “teste” tem total liberdade apenas com o banco “teste”.
Essa é apenas um pequena amostra do que pode ser trabalhado com privilégios no MySQL. Em outros tutoriais abordarei mais sobre o assunto.
Comentários
Postar um comentário
Deixe aqui sua opinião ou dúvida: