febrero 14, 2008

Uso de pwdencrypt y pwdcompare en SQL Server 2K

Estás dos funciones en SQL Server permiten cifrar y descifrar valores y que son muy últiles para guardar información no legible en la base de datos.

Ejemplo de uso:

--Devuelve la cadena cifrada.
select pwdencrypt('abcde')
--el resultado es: 0x0100841F6D61428B6A7C1E497428DA4F77201E9C15CE03B39414324ADFC9BEDF7C73FCEC7120D2AEEEACA1732737
--Este valor es el que almacenamos en nuestra tabla, por ejemplo un numero de cuenta o una contraseña, de esta manera si alguien ingresa a esta tabla no sabrá a que valor pertenece.

--Ahora comparamos el texto en claro con lo que se almacena en la BD, regresa 1 si son iguales, sino cero.

select pwdcompare('abcde',0x0100841F6D61428B6A7C1E497428DA4F77201E9C15CE03B39414324ADFC9BEDF7C73FCEC7120D2AEEEACA1732737)

Ahora veremos un store procedure en donde recibe el texto en claro -un password- y lo compara
con el que esta en la BD cifrado.

CREATE PROCEDURE dbo.spu_SelectUsr
@Usuario varchar(15),
@Passwd varchar(15)
AS

Set nocount on;

Declare @ExisteCta bit
set @ExisteCta = 0

SELECT @ExisteCta = 1
FROM USUARIO
WHERE (Usuario = @Usuario) AND (pwdcompare(@Passwd, PasswdCifrado)=1)
if @ExisteCta = 0
begin
Raiserror 13000 'No existe la cuenta de acceso proporcionada.'
Return
end
Go

Link otros ejemplos
http://msmvps.com/blogs/gladchenko/archive/2005/04/06/41083.aspx

Control para graficar en asp.net

Recientemente tuve la necesidad de graficar unos datos en el web, y mi sorpresa fue que visual studio net 2005 no incluye un control para ello, mi otra opción era sacarlo con Crystal Reports o un control y encontré este gratuito que me parecio muy bueno y además free.

http://www.carlosag.net/Tools/WebChart/Default.aspx

La guía de uso rápido o tutorial:
http://www.carlosag.net/Articles/WebChartTutorial.aspx

Herramientas gratis para SQL Server

Excelente link en donde podrán encontrar útiles herramientas para SQL Server 2k-2005

http://weblogs.sqlteam.com/mladenp/archive/2007/11/20/Free-SQL-Server-tools-that-might-make-your-life-a.aspx