2009-06-22 41 views
10

Veo algunos procedimientos almacenados en una base de datos que estoy administrando que tienen el icono de procedimiento almacenado normal, pero con un pequeño candado junto a ellos.
Las diferencias que veo es que no puedo "modificar", y si trato de escritura de ellos, que dice:¿Qué es un procedimiento almacenado con un icono de candado en SQL Server 2005?

texto está cifrado.

¿Esto se debe a que se trata de procedimientos almacenados de CLR?
¿Son procedimientos "regulares", pero encriptados/protegidos de alguna manera?
¿Hay alguna forma de llegar al código de esos (el T-SQL o el IL)?

+0

Cuando creo un procedimiento CLR, tiene icono de un candado – Muflix

Respuesta

13

El candado significa que el procedimiento almacenado se ha cifrado utilizando la sugerencia WITH ENCRYPTION (consulte CREATE PROC en BOL para obtener más información).

Es no significa que es un procedimiento almacenado CLR.

Here's un artículo de SQL Server Magazine sobre cómo descifrar objetos que se cifran utilizando la sugerencia WITH ENCRYPTION.

También hay herramientas de terceros que hacen lo mismo: el cifrado de sproc nativo no está destinado a ser un nivel sólido de cifrado.

Editar: Here es otro, pero no lo he probado en SQL Server 2005 o posterior.

3

El candado simplemente significa que están encriptados, no tiene nada que ver con que sean CLR. No hay forma de ver la fuente independientemente de que sean CLR/T-SQL.

3

Además de cifrado, también significa que no tiene los derechos VIEW DEFINITION, por lo que no puede ver el código del procedimiento almacenado.

0

Estos son procedimientos almacenados creados con la opción WITH ENCRYPTION (consulte MSDN Documentation on CREATE PROCEDURE para obtener más información). Todo lo que significa es que no puedes ver el código para el procedimiento almacenado.

Es posible descifrar tales procedimientos almacenados, pero dado que la idea detrás del cifrado es que no se puede hacer esto no es sencillo, ¡definitivamente no se debe hacer en servidores de producción! Si realmente necesita ver el texto del procedimiento almacenado, entonces es mejor que pregunte primero a las personas que lo escribieron para la versión no encriptada (al menos puede intentarlo).

Un efecto secundario de procedimientos almacenados cifrados es que no es posible ver planes de ejecución para aquellos objetos (ya sean planes de ejecución en caché a través de DMV o planes de ejecución capturados a través de perfiles)

Cuestiones relacionadas