Na maioria dos casos você deve utilizar
        GRANT para configurar seus usuários e
        senhas, portanto, as informações exibidas a seguir são
        aplicadas somentes para usuários avançados. See
        Secção 4.4.1, “A Sintaxe de GRANT e REVOKE”.
      
        Os exemplos nas seções precedentes ilustram um princípio
        importante: quando você armazena uma senha não-vazia
        utilizando INSERT ou
        UPDATE você deve utilizar a função
        PASSWORD() para criptografá-la. Isto é
        porque a tabela user armazena senhas na forma
        criptografada, e não como texto puro. Se você esquecer deste
        fato, é provável que você possa tentar configurar senhas
        desta forma:
      
shell>mysql -u root mysqlmysql>INSERT INTO user (Host,User,Password)VALUES('%','jeffrey','biscuit'); mysql>FLUSH PRIVILEGES;
        O resultado é que o valor 'biscuit' é
        armazenado como a senha na tabela user.
        Quando o usuário jeffrey tentar se conectar
        ao servidor utilizando esta senha, o cliente
        mysql a criptografa utilizando a função
        PASSWORD(), gerando um vetor de
        autenticação baseado em uma senha
        criptografada e um número
        randômico, obtido do servidor, e envia o resultado ao servidor.
        O servidor usa o valor do campo password na
        tabela user (que é o valor
        'biscuit' não
        criptografado ) para realizar os mesmos cálculos e
        comparar os resultados. A comparação falha e o servidor
        rejeita a conexão:
      
shell> mysql -u jeffrey -pbiscuit test
Access denied
        As senhas devem ser criptografadas quando elas são inseridas na
        tabela user, portanto a instrução
        INSERT deveria ter sido informada no seguinte
        formato:
      
mysql> INSERT INTO user (Host,User,Password)
       VALUES('%','jeffrey',PASSWORD('biscuit'));
        Você deve também utilizar a função
        PASSWORD() quando utilizar instruções
        SET PASSWORD:
      
mysql> SET PASSWORD FOR jeffrey@"%" = PASSWORD('biscuit');
        Se você configurar senhas utilizando a instrução
        GRANT ... IDENTIFIED BY ou o comando
        mysqladmin password, a função
        PASSWORD() é desnecessária. Ambos tomam o
        cuidado de criptografar a senha para você, então você deve
        especificar a senha 'biscuit' desta forma:
      
mysql> GRANT USAGE ON *.* TO jeffrey@"%" IDENTIFIED BY 'biscuit';
ou
shell> mysqladmin -u jeffrey password biscuit
        NOTA:
        PASSWORD() é diferente da senha
        criptografada do Unix.
      
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.

