segunda-feira, 8 de agosto de 2011

Cartões de Referência

O site http://www.cheat-sheets.org/ contém inúmeros modelos de resumos e Cartões de Referência sobre as mais diversas áreas, como programação, matemática, estatística, banco de dados, sistemas operacionais, entre outros.
Muito útil para quem precisa de uma "folha com fórmulas" ou um resumo de uma matéria para fazer algum exercício.

sexta-feira, 29 de julho de 2011

Concorrente para o iPad

Chegou no mercado o mais novo e revolucionário sistema de absorção de conhecimento...

video

Agora iPad, Kindle e outros Tablets não terão mais vez!

sexta-feira, 22 de julho de 2011

Autenticação no MySQL

Ontem havia tido problemas com a autenticação no servidor de Banco de Dados MySQL. O problema consistia em saber como o MySQL identifica os usuários.
Como muita gente já deve saber todo o esquema se segurança fica armazenado na base de dados mysql que é criada ao se instalar o MySQL. 
Nessa base de dados existe uma tabela chamada user onde armazena as informações de autenticação e os privilégios globais dos usuários. Aqui é bom lembrar que o identificado do usuário é apenas o campo user e não os campos host + user, apesar de se poder cadastrar o mesmo nome de usuário em vários hosts.
Na tabela db dessa mesma base de dados, são armazenados os privilégios dos usuários para cada base de dados. Aqui também, pode-se definir os campos host + db + user. Como o usuário é identificado apenas pelo username (campo user da tabela user) podemos usar nos campos host e db o caractere coringa "%", não é necessário colocar uma entrada com  host + user iguais aos da tabela user

Por exemplo, podemos ter os seguintes dados na tabela user:
/------+---------------\
| Host | User          |
+------+---------------+
| abc  | root          |
| xyz  | root          |
| www  | root          |
\------+---------------/


E na tabela db:
/------+----------+---------------\
| Host | Db       | User          |
+------+----------+---------------+
| %    | teste%   | root          |
\------+----------+---------------/

Ou seja, o usuário root, pode-se conectar dos hosts abc, xyz e www, e não importa por qual host ele se conectar, poderá acessar qualquer base de dados cujo nome começa com teste.

Abaixo segue como o MySQL autentica os usuários:
  1. Verifica se o usuário, senha e host existem na tabela user. Se tudo ocorreu normalmente, atribui as permissões globais especificadas na tabela .
  2. Depois da autenticação, verifica se o usuário (apenas o campo user) possui permissões específicas nas bases de dados (tabela db).
  3. Faz o mesmo tipo de verificação para tabelas em bases de dados e colunas em tabelas.