Exibindo informações das colunas, tabelas e banco de dados no PostgreSQL, MySQL e SQL Server


Alternando entre banco de dados corrente:

MySQL/SQL Server:

USE database_name;

PostgreSQL (psql):

\c database_name;

Exibindo as tabelas do banco de dados:

MySQL:

SHOW TABLES;

SQL Server:

SELECT * FROM sys.tables;

PostgreSQL (psql):  

\d;

PostgreSQL: 

SELECT table_name FROM information_schema.tables WHERE table_schema = 'public';

Listagem dos banco de dados:

MySQL:

SHOW DATABASES;

PostgreSQL(psql):

\l;

PostgreSQL:

SELECT datname FROM pg_database;

Exibindo as colunas de uma tabela:

MySQL: 

SHOW COLUMNS;

PostgreSQL(psql):

\d table_name;

PostgreSQL:  

SELECT column_name FROM information_schema.columns WHERE table_name ='table_name';

MySQL: 

DESCRIBE TABLE;

PostgreSQL (psql):

d+ table_name;

PostgreSQL:

SELECT column_name FROM information_schema.columns WHERE table_name ='table_name';

SQL Server;

exec sp_help 'table_name';

Até a próxima.

Criptografia de senhas no MySQL


Em muitos sites e outros sistemas informatizados existe a opção de cadastro e autenticação de usuários, e é sempre bom manter um nível alto de segurança em tais aplicações, o qual deve ter um cuidado cada vez maior dependendo do ramo que ela atua, como por exemplo sites de Internet Banking e outros.

Neste post irei mostrar alguns dos recursos voltados para a criptografia de dados  existentes no MySQL.

AES_ENCRYPT

Criptografa o dado com algoritmos simétricos (AES) que só pode ser descriptografada se a chave informada para recuperar o dado for igual a chave utilizada para criptografar.

Este comando possui a seguinte sintaxe:

AES_ENCRYPT('texto a ser criptografado', 'chave criptográfica')

Exemplo:

INSERT INTO usuarios(login, senha) VALUES ('meuusuario', AES_ENCRYPT('minha_senha123*', 'ASKASKSDJVS106DVSDJAHDLDSDFSBGXHG');

AES_DECRYPT

Sua função é descriptografar a sequencia que foi criptografada com o comando AES_ENCRYPT.

A sintaxe do comando é esta:

AES_DECRYPT('dado a ser descriptografado', 'chave criptográfica')

Exemplo:

Para recuperar a senha do usuário ‘meuusuario’ podemos utilizar a seguinte consulta:

SELECT AES_DECRYPT(senha, 'ASKASKSDJVS106DVSDJAHDLDSDFSBGXHG') FROM usuarios WHERE login = 'meuusuario'

PASSWORD

Esta função não é bem uma criptografia, ela na verdade embaralha os valores e até o presente momento não é possível recuperar o valor original da string.

Sua sintaxe é:

PASSWORD('string a ser embaralhada')

Exemplo

INSERT INTO usuarios(login, senha) VALUES('mynewuser', PASSWORD('mypassword'));

Para recuperar a mesma é só por comparações (tentativa/erro)

SELECT * FROM usuarios WHERE login = 'mynewuser' AND senha = PASSWORD('mypassord');