Existem várias diferenças entre a forma que nomes de usuários e senhas são usados pelo MySQL e a forma que são usados pelo Unix ou Windows:
Nomes de usuários, como usado pelo MySQL para propósitos
de autenticação, não tem nenhuma relação com os nomes
de usuários do Unix (nomes de login) ou nomes de usuários
Windows. A maioria dos clientes MySQL, por padrão, tentam
se conectar utilizando o nome de usuário atual do Unix como
o nome de usuário no MySQL, mas isto existe somente por
conveniência. Programas clientes permite especificar um
nome diferente com as opções -u
ou
--user
. Isto significa que você não pode
tornar um banco de dados seguro a menos que todos os
usuários do MySQL possuam senhas. Qualquer um pode tentar
se conectar ao servidor utilizando qualquer nome, e eles se
conectarão com qualquer nome que não possua uma senha.
Nomes de usuários MySQL podem ter o tamanho de até 16 caracteres; Nomes de usuário Unix normalmente são limitados até 8 caracteres.
Senhas MySQL não tem nenhuma relação com senhas Unix. Não existe nenhuma associação entre a senha em que você utiliza para logar-se a uma máquina Unix e a senha que é utilizada para acessar um banco de dados na mesma máquina.
O MySQL criptografa senhas utilizando um algorítimo
diferente que o utilizado pelo processo de login do Unix.
Veja as descrições das funções
PASSWORD()
e ENCRYPT()
em Secção 6.3.6.2, “Funções Diversas”. Perceba que
mesmo que a senha é armazenada 'embaralhada', o
conhecimento da sua senha 'embaralhada' é o suficiente para
conseguir se conectar ao servidor MySQL!
A partir da versão 4.1, o MySQL emprega um mecanismo de senha e login diferentes que é seguro mesmo se for feito um sniff no pacote TCP/IP e/ou o banco de dados mysql for capturado.
Usuários MySQL e seus privilégios são criados normalmente com
o comando GRANT
, See Secção 4.4.1, “A Sintaxe de GRANT
e REVOKE
”.
Quando você se conecta a um servidor MySQL com um cliente de
linha de comando você pode especificar a senha com
--password=sua-senha
. See
Secção 4.3.8, “Conectando ao Servidor MySQL”.
mysql --user=monty --password=guess nome_do_banco
Se você deseja que o cliente lhe solicite a senha, deve ser
especificado o parâmetro --password
sem nenhum
argumento
mysql --user=monty --password nome_do_banco
ou no formato curto:
mysql -u monty -p nome_do_banco
Perceba que no último exemplo a senha não é 'nome_do_banco'.
Se você deseja usar a opção -p
para
fornecer uma senha você deve fazer assim:
mysql -u monty -pguess database_name
Em alguns sistemas, a chamada da biblioteca que é utilizada pelo MySQL para solicitar por uma senha corta automaticamente a senha para 8 caracteres. Internamente o MySQL não limita o tamanho limite da senha.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.