views:

363

answers:

4

I see some stored procedures in one database I'm managing that have the regular stored proc icon, but with a little padlock next to them.
The differences I see is that I can't "modify" them, and if I try to script them, it says "Text is Encrypted".

Is this because these are CLR stored procedures?
Are they "regular" procedures, but encrypted/protected somehow?

Is there any way to get to the code of those (either the T-SQL or the IL)?

Thanks

+3  A: 

The padlock simply means they're encrypted - has nothing to do with them being CLR. There is no way to view the source regardless of them being CLR / T-SQL.

Joel Mansford
+4  A: 

The padlock means that the stored procedure has been encrypted using the WITH ENCRYPTION hint (see CREATE PROC in BOL for more information).

It doesn't mean that it's a CLR stored procedure.

Here's a SQL Server Magazine article on how to decrypt objects which are encrypted using the WITH ENCRYPTION hint.

There are also third party tools which do the same thing - native sproc encryption is not meant to be a strong level of encryption.

Edit: Here's another, but I haven't tested it on SQL 2005 or later.

Aaron Alton
+1  A: 

As well as encrypted, it also means you don't have VIEW DEFINITION rights, so can't see the code of the stored proc.

gbn
A: 

These are stored procedures created with the WITH ENCRYPTION option (see the MSDN Documentation on CREATE PROCEDURE for more information). All it means is that you cant see the code for the stored procedure.

It is possible to decrypt such stored procedures, but being that the idea behind encryption is that you cant do this its not straightforward - definitely dont do it on production servers! If you really need to see the stored procedure text then you are better off asking the people who wrote it for the unencrypted version first (you can at least try).

A side effect of encrypted stored procedures is that its not possible to view execution plans for those objects (either cached execution plans via DMVs or execution plans captured through profiling)

Kragen