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?

¿Fue útil?

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

mire MSDN Crear Procedimiento

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top