SQL Server Pro-artiklen "Dekrypter SQL Server-objekter" fungerer stadig i SQL Server 2008.
Du skal oprette forbindelse via DAC'en. Se filen "Decrypt SQL 2005 stored procedures, functions, triggers, views.sql" i downloaden .
Bare for at opsummere de trin, den udfører for den følgende definition af lagrede procedurer
CREATE PROC dbo.myproc
WITH ENCRYPTION
AS
SELECT 'FOO'
- Henter den krypterede objekttekst fra
imagevalkolonne isys.sysobjvaluesog gemmer den i en variabel@ContentOfEncryptedObject - Beregner
@ObjectDataLengthfraDATALENGTH(@ContentOfEncryptedObject)/2. - Genererer en
ALTER PROCEDUREsætning udfyldt til den korrekte længde med-tegn (så i dette tilfældeALTER PROCEDURE [dbo].[myproc] WITH ENCRYPTION AS------------) - Udfører
ALTERsætning, henter den krypterede version frasys.sysobjvaluesog gemmer det i variablen@ContentOfFakeEncryptedObjectruller derefter ændringen tilbage. - Genererer en
CREATE PROCEDUREsætning udfyldt til den korrekte længde med-tegn (så i dette tilfældeCREATE PROCEDURE [dbo].[myproc] WITH ENCRYPTION AS-----------). Dette bliver gemt i variablen@ContentOfFakeObject
Det går derefter igennem for @i = 1 to @ObjectDataLength og dekrypterer definitionen et tegn ad gangen ved at bruge følgende XOR beregning.
NCHAR(
UNICODE(SUBSTRING(@ContentOfEncryptedObject, @i, 1)) ^
(
UNICODE(SUBSTRING(@ContentOfFakeObject, @i, 1)) ^
UNICODE(SUBSTRING(@ContentOfFakeEncryptedObject, @i, 1))
)
)