MsSQL – Criptografia

Como todos sabemos, quem trabalha com o SQL Server ou algum outro banco de dados mais robusto (como o Oracle ou Progress, por exemplo), quer ter além de tudo segurança.

Por este motivo em nossa matéria de hoje, vamos focar nossos conhecimentos em algo fundamental: a Criptografia.

A forma mais prática e (creio eu) segura, é criptografar o conteúdo através do Stored Procedures.

Como trata-se de uma matéria específica (segurança e Stored Procedures), para que haja um entendimento maior do que está sendo passado, recomendamos que tal matéria seja destinada a internautas mais experientes!

Ao desenvolver stored procedures dentro de um banco de dados no SQL Server é possível criptografar o código delas para que ninguém mal intencionado altere ou cause um estrago em sua aplicação.

Para criptografar a stored procedures basta apenas adiciona ao final do CREATE PROCEDURE o comando WITH ENCRYPTION.

OBS.: É muito importante que ao criptografar uma stored procedures que se guarde em algum lugar seguro o código original, pois não será possível depois descriptografar a partir do banco de dados.

Para quem quer pensar em futuras atualizações, é válido guardar este código, pois sempre que for preciso realizar atualizações poderá ser feito através do código original.

Vamos a um exemplo prático?

No exemplo abaixo, vamos criar uma tabela chamada SP_TESTE_CRIPTOGRAFIA e dentro dela, criaremos um campo chamado Texto.

Após acessar o SQL Editor, No exemplo a seguir, criaremos Copie o conteúdo descrito no arquivo script-sql.txt junto ao SQL Server e crie a tabela Clientes.

Veja abaixo o exemplo da procedure, onde estaremos apresentando em sua forma original.


-----CÓDIGO ORIGINAL  -----

CREATE PROCEDURE dbo.SP_TESTE_CRIPTOGRAFIA @TEXTO VARCHAR(1000) WITH ENCRYPTION
AS SET NOCOUNT ON SELECT @TEXTO AS TEXTO SET NOCOUNT OFF GO
-----

No exemplo a seguir, apresentamos a mesma procedure, onde agora o apresentamos em sua forma criptografada.


-----CÓDIGO ORIGINAL  -----

exec(decrypt(0x20D89BA23104EFBE7489F9BC31CB549650E286D1F2039290CB954016D65780C4F3B3E0772F3ADA09ABFA062544A92F95BC6CDCF4DF4E185229307F1F746AFB25F502DA81CEE83779A5EAEA41A128277F4F925C01928ED0261A727CF64C81BB913D7E7B4C7CF29D41257C1B068B65ACC51167AFF3D5362401CC1EFA614634B45E209F39CABDCFC4883AEF756B170EC07865D44C22B75038E628098EEFC546A36A3C5DAF6368D25F8D3F089085DB7A3222B479C1FD969A389CD46B991756FC9AC2337EB57D0657D378E509F6F0D4DE6034482C7566D07491DF0564040EE0D293570BCD362881E8C4737068D9275E8CBD32D758318CA66A504E0EEAAE16681F8ACFBF0D56269540109742204701B74B4860BCA06231370AE57F2D60ED9A3793745C018E47BFCF8BA3DC4E6EB0F4A09DC3EC08427F1AC7787B06A33FE49A243D0608E1DFD180857561473B40C3F484E2ECA69B1DAE45BB34E316D16446104CE16D799EA63A438B69A04273FCE533EEE47C25F2139482FB92C13E19B399BC0A4E4C8D6AD195B0CDC291E5E0DE89EA556041DDEAB259C1BBC127A73FA95D398B6C104C3F679718A075F5E80D4C46960AAC54AED520E167))
GO
-----

criptografia

Veja o exemplo em uso, conforme a imagem acima!

Bem… espero ter lhe ajudado em algo com esta matéria que apesar de curta é bem objetiva!

Na internet hoje, se você procurar algo, encontrará; Sim. Porém, geralmente são exemplos contendo erros e sem eficiência!

Em anexo enviamos o arquivo script-sql.txt com este código completo.

Adapte às suas necessidades e me envie seus comentários!

Caso você tenha qualquer dúvida, pergunta ou observação, estou a sua disposição pronto a lhe ajudar.

DOWNLOAD: Descarregue o código utilizado neste tutorial: MsSQL – Criptografia, em formato .zip.

Be Sociable, Share!

Participa! Comenta...