2009-06-22 11 views
10

Vedo alcune stored procedure in un database che sto gestendo che hanno l'icona della stored procedure regolare, ma con un piccolo lucchetto accanto a loro.
Le differenze che vedo è che non riesco a "modificare", e se provo a sceneggiatura di loro, dice:Che cos'è una stored procedure con l'icona di un lucchetto in SQL Server 2005?

testo è crittografato.

È perché queste sono procedure memorizzate CLR?
Sono procedure "regolari", ma in qualche modo crittografate/protette?
C'è un modo per ottenere il codice di quelli (T-SQL o IL)?

+0

Quando creo una procedura CLR, ha icona di un lucchetto – Muflix

risposta

13

Il lucchetto indica che la stored procedure è stata crittografata utilizzando l'hint WITH ENCRYPTION (per ulteriori informazioni, vedere CREATE PROC in BOL).

non corrisponde a significa che è una procedura memorizzata CLR.

Here's un articolo di SQL Server Magazine su come decrittografare oggetti crittografati utilizzando l'hint WITH ENCRYPTION.

Ci sono anche strumenti di terze parti che fanno la stessa cosa: la crittografia nativa dello sproc non è pensata per essere un forte livello di crittografia.

Modifica: Here un altro, ma non l'ho provato su SQL Server 2005 o successivo.

3

Il lucchetto significa semplicemente che sono crittografati - non ha nulla a che fare con loro essendo CLR. Non c'è modo di vedere la fonte indipendentemente dal fatto che siano CLR/T-SQL.

3

Così come crittografato, significa anche che non si dispone dei diritti VIEW DEFINITION, quindi non è possibile visualizzare il codice della stored procedure.

0

Queste sono stored procedure create con l'opzione WITH ENCRYPTION (vedere MSDN Documentation on CREATE PROCEDURE per ulteriori informazioni). Tutto ciò significa che non puoi vedere il codice per la stored procedure.

È possibile decifrare tali stored procedure, ma essendo l'idea alla base della crittografia è che non si può fare questo non è semplice - sicuramente non farlo sui server di produzione! Se hai davvero bisogno di vedere il testo della stored procedure, allora è meglio chiedere alle persone che lo hanno scritto per la versione non criptata prima (puoi almeno provare).

Un effetto collaterale di stored procedure crittografate è che non è possibile vedere piani di esecuzione per tali oggetti (sia i piani di esecuzione memorizzati nella cache tramite DMV o piani di esecuzione catturati mediante profilatura)

Problemi correlati