[ Login | Register | Lost password? ]

Liberando acesso para cliente/servidor Mysql 5.6 Linux em rede interna

Por: Junior Tada
23/03/2015

Liberando acesso para cliente/servidor Mysql 5.6 Linux em rede interna

Essa é uma dica bem simples mas que muitos usuários tem dúvidas quando estão começando a desenvolver sistemas que necessitam de um servidor e vários clientes conectados. Isto ocorre porque muitos desenvolvedores acabam acostumados a testar sistemas apenas em localhost e ainda utilizando usuário root com todos os privilégios.

Vou partir do pressuposto que você já tenha instalado o mysql server no computador servidor. Antes de tudo, vamos editar o arquivo my.cnf para liberar a faixa de ip para permitir a conexão. Utilize seu editor de texto preferido, neste exemplo vou utilizar o gedit.

          sudo gedit /etc/mysql/my.cnf

Edite a linha:

          bind-address = 0.0.0.0

Isto irá permitir que outros computadores da rede tenham acesso, mas apenas usuários cadastrados.

Então vamos cadastrar um usuário e dar permissão de acesso para ele.

No servidor abra um terminal e entre como usuário root:

#          

           mysql -u root -p

-u root, onde root é o usuário que você deseja utilizar, e -p para você entrar com a senha deste usuário

mysql>

            create user 'junior'@'192.168.1.%' identified by 'minha_senha';

No caso eu criei um usuário com login junior e permiti uma faixa de ip interno (isto pode variar em diferentes valores dependendo da marca ou configuração do seu roteador, entre nas configurações do roteador ou visualize as informações de ip com o comando ifconfig) e defini uma senha para este usuário (minha_senha).

Agora vou definir um usuário com todos os privilégios:

mysql>

            grant all privileges on *.* to 'junior'@'192.168.1.%' with grant option;

Neste caso estamos permitindo todos os privilégios para todos os bancos e todas as tabelas para o usuário junior desde que ele esteja nesta faixa de ip. Tente ser o mais específico possível tanto nos bancos/tabelas como na faixa de ip. Isto é, no lugar de *.*, defina nome_do_banco.* ou nome_do_banco.nome_da_tabela.

Ao invés de permitir “all privileges” defina apenas as opções que este usuário deve ter de acordo com as necessidades do seu sistema. Abaixo segue a tabela com os privilégios.

 

Privilege

Meaning and Grantable Levels

ALL [PRIVILEGES]

Grant all privileges at specified access level except GRANT OPTION

ALTER

Enable use of ALTER TABLE. Levels: Global, database, table.

ALTER ROUTINE

Enable stored routines to be altered or dropped. Levels: Global, database, procedure.

CREATE

Enable database and table creation. Levels: Global, database, table.

CREATE ROUTINE

Enable stored routine creation. Levels: Global, database.

CREATE TEMPORARY TABLES

Enable use of CREATE TEMPORARY TABLE. Levels: Global, database.

CREATE USER

Enable use of CREATE USERDROP USERRENAME USER, and REVOKE ALL PRIVILEGES. Level: Global.

CREATE VIEW

Enable views to be created or altered. Levels: Global, database, table.

DELETE

Enable use of DELETE. Level: Global, database, table.

DROP

Enable databases, tables, and views to be dropped. Levels: Global, database, table.

EVENT

Enable use of events for the Event Scheduler. Levels: Global, database.

EXECUTE

Enable the user to execute stored routines. Levels: Global, database, table.

FILE

Enable the user to cause the server to read or write files. Level: Global.

GRANT OPTION

Enable privileges to be granted to or removed from other accounts. Levels: Global, database, table, procedure.

INDEX

Enable indexes to be created or dropped. Levels: Global, database, table.

INSERT

Enable use of INSERT. Levels: Global, database, table, column.

LOCK TABLES

Enable use of LOCK TABLES on tables for which you have the SELECT privilege. Levels: Global, database.

PROCESS

Enable the user to see all processes with SHOW PROCESSLIST. Level: Global.

REFERENCES

Not implemented

RELOAD

Enable use of FLUSH operations. Level: Global.

REPLICATION CLIENT

Enable the user to ask where master or slave servers are. Level: Global.

REPLICATION SLAVE

Enable replication slaves to read binary log events from the master. Level: Global.

SELECT

Enable use of SELECT. Levels: Global, database, table, column.

SHOW DATABASES

Enable SHOW DATABASES to show all databases. Level: Global.

SHOW VIEW

Enable use of SHOW CREATE VIEW. Levels: Global, database, table.

SHUTDOWN

Enable use of mysqladmin shutdown. Level: Global.

SUPER

Enable use of other administrative operations such as CHANGE MASTER TOKILLPURGE BINARY LOGSSET GLOBAL, and mysqladmin debug command. Level: Global.

TRIGGER

Enable trigger operations. Levels: Global, database, table.

UPDATE

Enable use of UPDATE. Levels: Global, database, table, column.

USAGE

Synonym for “no privileges”

Pronto, você já pode conectar com o workbench ou com o seu sistema utilizando este usuário dentro da mesma rede interna.

 

Categoria: Programação

Tags: ['mysql,bancodedados,programa\xc3\xa7\xc3\xa3o']

Comentários: