Luego de instalar el SQL Shield, Ud. puede comenzar a utilizarlo inmediatamente. SQL Shield no afecta los procedimientos existentes, no cambia ningún objeto existente. Cuando se activa afecta solamente los procedimientos recién creados. Esto sucede únicamente cuando Ud. especifica en forma explícita el nuevo método. Por lo tanto, ambos métodos pueden coexistir sin interferencias. Para especificar en forma explícita el nuevo método Ud. debe insertar el comentario /*sqlshield*/ en la cláusula WITH ENCRYPTION. Este comentario distingue mayúsculas y minúsculas.
Ejemplo:
CREATE PROCEDURE MyTest WITH /*sqlshield*/ ENCRYPTION AS SELECT 2+2 |
SQL Shield no provee el método de desencriptación de procedimientos encriptados con los modos Servidor SQL o SQL Shield.
Después de instalar SQL Shield Ud. puede elegir qué método de encriptación utilizar: nativo o SQL Shield. Ud. puede habilitar y deshabilitar SQL Shield ejecutando dos procedimientos externos. SQL Shield se inicia junto con el Servidor SQL. Durante la instalación, coloca un procedimiento especial llamado sqlshield_startup en la base de datos master (maestra). Si Ud. quiere deshabilitarlo, comente allí "exec master..sqlshield_on". Para descargar SQL Shield en cualquier momento, utilice "exec master..sqlshield_off". Todos los objetos creados a partir de allí utilizarán encriptación nativa de Servidor SQL. El Servidor SQL almacena en forma temporal los objetos desencriptados. Esta es la razón por la que los objetos encriptados están generalmente disponibles (pueden ser ejecutados) luego de parar o descargar el SQL Shield. Pero los objetos que no fueron iniciados no están disponibles. Si Ud. reinicia el SQL Server y no inicia el SQL Shield, todos los objetos no estarán disponibles. Si bien SQL Shield no previene completamente que los procedimientos sean desencriptados, sí lo hace para los desencriptadores actualmente existentes.
Debido a las limitaciones internas del Servidor MSSQL 7.0, los procedimientos almacenados y las vistas encriptadas con SQL Shield no pueden tener más de 4000 caracteres. Los procedimientos más largos son encriptados con encriptación nativa SQL. La versión para MSSQL 2000 no tiene limitaciones.
Vea cuán fácilmente pueden desencriptarse los procedimientos del Servidor SQL. Cree un procedimiento simple encriptado:
Encuentre el programa de desencriptado en buscar en la web
Inícielo, seleccione el procedimiento creado recientemente, y presione Guardar.
Abra el archivo de texto creado con Notepad. Aquí tiene. Todos sus procedimientos encriptados pueden ser descubiertos con unos pocos clics!
Veamos ahora cómo SQL Shield resuelve este problema.
Inicie SQL Shield, si no se había iniciado todavía:
Cree el nuevo procedimiento almacenado, e inserte el comentario "magic" /*sqlshield*/ :
Ejecútelo y verá que aún puede ser ejecutado sin problemas.
Ejecute el desencriptador e intente aplicarlo a nuestro procedimiento:
Presione el botón Guardar y vea el archive resultante:
Opps. Ahora nuestro procedimiento está protegido.
Desea ver qué hubiera ocurrido sin SQL Shield ? Deshabilite el inicio automático de SQL Shield en el procedimiento master.sqlshield_startup y reinicie el Servidor SQL. Ahora ejecute nuevamente sqlshield_test. Verá el siguiente error.
Cuando inicia SQL Shield se vuelve nuevamente ejecutable.