Článek SQL Server Pro "Dešifrování objektů SQL Server" stále funguje v SQL Server 2008.
Musíte se připojit přes DAC. Viz soubor "Dešifrování uložených procedur SQL 2005, funkcí, spouštěčů, views.sql" v stažení .
Jen pro shrnutí kroků, které provádí pro následující definici uložené procedury
CREATE PROC dbo.myproc
WITH ENCRYPTION
AS
SELECT 'FOO'
- Načte zašifrovaný text objektu z
imagevalvsys.sysobjvaluesa uloží jej do proměnné@ContentOfEncryptedObject - Vypočítá
@ObjectDataLengthzDATALENGTH(@ContentOfEncryptedObject)/2. - Generuje
ALTER PROCEDUREpříkaz doplněný na správnou délku pomocí-znak (takže v tomto případěALTER PROCEDURE [dbo].[myproc] WITH ENCRYPTION AS------------) - Spustí
ALTERpříkaz, načte zašifrovanou verzi zsys.sysobjvaluesa uloží to do proměnné@ContentOfFakeEncryptedObjectpak vrátí změnu. - Vygeneruje
CREATE PROCEDUREpříkaz doplněný na správnou délku pomocí-znak (takže v tomto případěCREATE PROCEDURE [dbo].[myproc] WITH ENCRYPTION AS-----------). To se uloží do proměnné@ContentOfFakeObject
Poté prochází pro @i = 1 to @ObjectDataLength a dešifruje definici znak po znaku pomocí následujícího XOR výpočet.
NCHAR(
UNICODE(SUBSTRING(@ContentOfEncryptedObject, @i, 1)) ^
(
UNICODE(SUBSTRING(@ContentOfFakeObject, @i, 1)) ^
UNICODE(SUBSTRING(@ContentOfFakeEncryptedObject, @i, 1))
)
)