Cómo proteger el código SQL en SQL Server
-
06-07-2019 - |
Pregunta
¿Es posible proteger el código de procedimiento almacenado de SQL 2008 de los ojos de cualquier persona? ¿Quizás algún cifrado o ensamblaje como dll?
Solución
sí, puede guardarlo en la base de datos en forma cifrada, pero si lo hace, asegúrese de tener el código fuente original almacenado de forma segura en algún lugar ...
CREATE PROCEDURE dbo.foo
WITH ENCRYPTION
AS
BEGIN
SELECT 'foo'
END
Desafortunadamente, hay al menos dos formas de derrotar este mecanismo. Una es ejecutar el Analizador de SQL mientras se ejecuta el procedimiento almacenado; esto a menudo puede revelar el texto del procedimiento en sí mismo, dependiendo de lo que haga el procedimiento almacenado (por ejemplo, si tiene lotes GO, SQL dinámico, etc.). Si pierden la instalación inicial, el usuario puede eliminar los procedimientos almacenados o soltar la base de datos, iniciar un seguimiento de Profiler y pedirle que los vuelva a crear (en cuyo caso capturarán las instrucciones CREATE PROCEDURE). Puede evitar que Profiler revele el texto a los intrusos incorporando sp_password en el código, como comentario:
CREATE PROCEDURE dbo.foo
WITH ENCRYPTION
AS
BEGIN
SELECT 'foo'
-- comment: sp_password
END