Domanda

È possibile proteggere il codice della procedura memorizzata SQL 2008 dagli occhi di chiunque? Forse un po 'di crittografia o assemblaggio come dll?

È stato utile?

Soluzione

sì, puoi salvarlo nel database in forma crittografata, ma se lo fai, assicurati di avere il codice sorgente originale memorizzato in modo sicuro da qualche parte ...

CREATE PROCEDURE dbo.foo 
WITH ENCRYPTION 
AS 
BEGIN 
    SELECT 'foo' 
END

Sfortunatamente, ci sono almeno due modi per sconfiggere questo meccanismo. Uno è eseguire SQL Profiler mentre si esegue la procedura memorizzata; questo spesso può rivelare il testo della procedura stessa, a seconda di ciò che fa la procedura memorizzata (ad esempio se ha batch GO, SQL dinamico ecc.). Se manca l'installazione iniziale, l'utente può eliminare le procedure memorizzate o rilasciare il database, avviare una traccia di Profiler e chiedere di ricrearle (nel qual caso acquisiranno le istruzioni CREATE PROCEDURE). Puoi impedire a Profiler di rivelare il testo ai ficcanaso incorporando sp_password nel codice, come commento:

CREATE PROCEDURE dbo.foo 
WITH ENCRYPTION 
AS 
BEGIN 
    SELECT 'foo' 
    -- comment: sp_password 
END

guarda la documentazione di MSDN Create Procedure

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top