quinta-feira, 15 de dezembro de 2011

Configurando o Mysql - Permissões

Na instalação padrão, o MySQL cria um usuário sem senha chamado root que tem controle total sobre ele. Assim, a primeira coisa que faremos será definir uma senha para este usuário:

prompt> mysql -u root mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 3.23.49-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>
mysql>
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('senha');
Query OK, 0 rows affected (0.00 sec)

mysql>


Troque "senha" para a senha que você escolher. Pronto, definimos uma senha para o usuário root. Agora vamos criar uma base de dados para os nossos experimentos e adicionar um usuário para utilizá-la.

prompt> mysql -u root mysql -p
Enter password:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4 to server version: 3.23.49-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>
mysql> create database mysql_bash;
Query OK, 1 row affected (0.00 sec)

mysql> GRANT usage ON *.* TO thobias@localhost IDENTIFIED BY 'senha';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT usage ON *.* TO thobias@'%' IDENTIFIED BY 'senha';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT CREATE, DROP, SELECT, INSERT, UPDATE, DELETE ON mysql_bash.* TO thobias@localhost;
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT CREATE, DROP, SELECT, INSERT, UPDATE, DELETE ON mysql_bash.* TO thobias@'%';
Query OK, 0 rows affected (0.00 sec)

mysql>



O primeiro comando (create database mysql_bash;), cria uma base de dados com o nome mysql_bash, ou seja, um diretório onde ficarão as nossas tabelas.

O segundo comando cria um usuário chamado thobias com a senha senha, e dá permissão para ele se conectar ao banco de dados. O terceiro comando difere do segundo pelo fato de dar permissão para o usuário thobias se conectar ao banco à partir de qualquer máquina. Poderíamos especificar a máquina, exemplo:

mysql> GRANT usage ON *.* TO thobias@maquina1.com IDENTIFIED BY 'senha';

O % é um curinga que especifica qualquer máquina. Caso você não execute o terceiro comando, você poderá acessar o banco somente na mesma máquina que está rodando o banco, em outras palavras, o localhost.

Os dois últimos comandos servem para dar permissão ao usuário thobias fazer o que quiser na base da dados mysql_bash.

Note: o usuário só pode mexer na base de dados mysql_bash. Nas demais ele não tem permissão
Feito isto, execute:

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> quit
Bye
prompt>


Beleza, já estamos com o nosso banco de dados pronto para começar a brincadeira. =8

Nenhum comentário:

Postar um comentário